backupandrestore/backupengine/src/sbebufferhandler.cpp
changeset 33 883e91c086aa
parent 0 d0791faffa3f
child 47 63cf70d3ecd8
--- 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 <connect/panic.h>
+#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");