From 98bd9a21e357f3ca4477a3625d859a889450f925 Mon Sep 17 00:00:00 2001 From: Daniel Grunwald Date: Sat, 10 May 2008 18:36:11 +0000 Subject: [PATCH] Safe saving: don't use temporary file when the destination file does not exist. This ensures that .resx files exist when they are saved, which is required to add them to version control. Fixes forum-6459. git-svn-id: svn://svn.sharpdevelop.net/sharpdevelop/trunk@3058 1ccf3a8d-04fe-1044-b7c0-cef0b8235c61 --- .../Base/Project/Src/Services/File/OpenedFile.cs | 13 ++++--------- 1 file changed, 4 insertions(+), 9 deletions(-) diff --git a/src/Main/Base/Project/Src/Services/File/OpenedFile.cs b/src/Main/Base/Project/Src/Services/File/OpenedFile.cs index 56ff408726..b69c3cffa0 100644 --- a/src/Main/Base/Project/Src/Services/File/OpenedFile.cs +++ b/src/Main/Base/Project/Src/Services/File/OpenedFile.cs @@ -203,7 +203,7 @@ namespace ICSharpCode.SharpDevelop if (IsUntitled) throw new InvalidOperationException("Cannot save an untitled file to disk!"); - bool safeSaving = FileService.SaveUsingTemporaryFile; + bool safeSaving = FileService.SaveUsingTemporaryFile && File.Exists(FileName); string saveAs = safeSaving ? FileName + ".bak" : FileName; using (FileStream fs = new FileStream(saveAs, FileMode.Create, FileAccess.Write)) { if (currentView != null) { @@ -213,15 +213,10 @@ namespace ICSharpCode.SharpDevelop } } if (safeSaving) { - DateTime? creationTime = null; - if (File.Exists(FileName)) { - creationTime = File.GetCreationTimeUtc(FileName); - File.Delete(FileName); - } + DateTime creationTime = File.GetCreationTimeUtc(FileName); + File.Delete(FileName); File.Move(saveAs, FileName); - if (creationTime != null) { - File.SetCreationTimeUtc(FileName, creationTime.Value); - } + File.SetCreationTimeUtc(FileName, creationTime); } IsDirty = false; }