diff -r 85e0c0339cc3 -r 883e91c086aa backupandrestore/backupengine/src/sbebufferhandler.cpp --- a/backupandrestore/backupengine/src/sbebufferhandler.cpp Fri Jun 11 14:27:06 2010 +0300 +++ b/backupandrestore/backupengine/src/sbebufferhandler.cpp Tue Jul 06 15:13:34 2010 +0300 @@ -22,7 +22,7 @@ #include "sbebufferhandler.h" #include "sblog.h" -#include +#include "sbepanic.h" namespace conn { @@ -508,11 +508,29 @@ __LOG1("CBufferFileReader::WriteToFile() - making directory resulted in fatal error: %d", err); User::Leave(err); } // if - - + + TEntry entry; + TBool isReadOnly = EFalse; + err = iFs.Entry(iFileName, entry); + if(KErrNone == err) + { + if(entry.iAtt & KEntryAttReadOnly) + { + isReadOnly = ETrue; + entry.iAtt &= ~KEntryAttReadOnly; + iFs.SetAtt(iFileName, entry.iAtt, ~entry.iAtt); + } + } + err = iFileHandle.Replace(iFs, iFileName, EFileWrite); __LOG1("CBufferFileReader::WriteToFile() - replacing file returned err: %d", err); User::LeaveIfError( err ); + + if(isReadOnly) + { + entry.iAtt |= KEntryAttReadOnly; + iFs.SetAtt(iFileName, entry.iAtt, ~entry.iAtt); + } iFileOpen = ETrue; __LOG("CBufferFileReader::RecreateFileL() - END");