我有个令人很不解的问题:
方法一:
void CUtils::OverWriteToFileL(TFileName& fileName, const TDesC8& aResponseBuffer)
{
RFile file;
User::LeaveIfError(file.Replace(CCoeEnv::Static()->FsSession(), fileName, EFileWrite));
CleanupClosePushL(file);
TInt ret = file.Write(aResponseBuffer, aResponseBuffer.Length());
CleanupStack::PopAndDestroy(&file);
}
方法二:
void CUtils::OverWriteToFileL(TFileName& fileName, const TDesC8& aResponseBuffer)
{
RFile file;
RFs fsSession;
fsSession.Connect();
User::LeaveIfError(file.Replace(fsSession, fileName, EFileWrite));
CleanupClosePushL(file);
User::LeaveIfError(file.Write(aResponseBuffer, aResponseBuffer.Length()));
CleanupStack::PopAndDestroy(&file);
fsSession.Close();
}
方法一不可行,运行到User::LeaveIfError(file.Replace(CCoeEnv::Static()->FsSession(), fileName, EFileWrite));程序跳出;方法二正常运行,file.Write返回值是0.
我的capability 也都加了可就是找不到原因,急,在线等……
------最佳解决方案--------------------------------------------------------
同意楼上。方法一适合GUI程序,方法二Console程序
------其他解决方案--------------------------------------------------------
CCoeEnv::Static()在控制台程序是取不到指针的
------其他解决方案--------------------------------------------------------
我的是控制台程序,也就是说使用方法二是正解