backupandrestore/backupengine/src/sbebufferhandler.cpp
branchRCL_3
changeset 12 523717cdb0ad
parent 0 d0791faffa3f
child 15 f85613f12947
--- a/backupandrestore/backupengine/src/sbebufferhandler.cpp	Tue May 11 16:59:11 2010 +0300
+++ b/backupandrestore/backupengine/src/sbebufferhandler.cpp	Tue May 25 13:35:25 2010 +0300
@@ -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");