Esempio n. 1
0
//------------------------------------------------------------------------------------------------------------
void CTestAppRoot::RunL()
	{
	const TInt chunkSize = 1024;

	RFs filesys;
	RFile file;
	TBuf8<chunkSize> buf;
	TInt ret 	 = 0;
	TInt counter = 0;
	
	ret = filesys.Connect();
	if (KErrNone != ret)
		{
		iTest.Printf(_L("\nError connecting to the file system: %d\n"), ret);
		}
	else
		{
		ret = file.Replace(filesys, iTo, EFileWrite);
		if (KErrNone != ret)
			{
			iTest.Printf(_L("\nError replacing the destination file: %d\n"), ret);
			}
		else
			{
			iTest.Printf(_L("Copying:\n"));
			
			while (1)
				{
				// KErrNone returned if EOF
				ret = filesys.ReadFileSection(iFrom, counter*chunkSize, buf, chunkSize);
				if (KErrNone != ret) 
					{
					iTest.Printf(_L("\nError reading from file: %d\n"), ret);
					break;			
					}
				
				ret = file.Write(buf);
				if (KErrNone != ret) 
					{
					iTest.Printf(_L("\nError writing to file: %d\n"), ret);
					break;			
					}
					
				iTest.Printf(_L("#"));
					
				// Break if EOF
				if (chunkSize > buf.Length()) break;
				counter++;
				}
			}
		}
					
	file.Close();
	filesys.Close();
	CActiveScheduler::Stop();
	}