OSDN Git Service

ディスクに空きがないときにconfig.xmlやstatus.xmlが空になるのを直す
authorKazuhiro Fujieda <fujieda@users.osdn.me>
Wed, 21 Mar 2018 06:17:18 +0000 (15:17 +0900)
committerKazuhiro Fujieda <fujieda@users.osdn.me>
Fri, 23 Mar 2018 13:43:28 +0000 (22:43 +0900)
KancolleSniffer/Config.cs
KancolleSniffer/Status.cs

index 91fa500..808bf3f 100644 (file)
@@ -318,8 +318,11 @@ namespace KancolleSniffer
             DecomposeNotificationFlags();\r
             ConvertPath(StripBaseDir);\r
             var serializer = new XmlSerializer(typeof(Config));\r
-            using (var file = File.CreateText(ConfigFile))\r
+            using (var file = File.CreateText(ConfigFile + ".tmp"))\r
                 serializer.Serialize(file, this);\r
+            if (File.Exists(ConfigFile))\r
+                File.Delete(ConfigFile);\r
+            File.Move(ConfigFile + ".tmp", ConfigFile);\r
         }\r
 \r
         private void DecomposeNotificationFlags()\r
index d82a88a..e667657 100644 (file)
@@ -73,8 +73,11 @@ namespace KancolleSniffer
         public void Save()\r
         {\r
             var serializer = new XmlSerializer(typeof(Status));\r
-            using (var file = File.CreateText(StatusFile))\r
+            using (var file = File.CreateText(StatusFile + ".tmp"))\r
                 serializer.Serialize(file, this);\r
+            if (File.Exists(StatusFile))\r
+                File.Delete(StatusFile);\r
+            File.Move(StatusFile + ".tmp", StatusFile);\r
         }\r
     }\r
 }
\ No newline at end of file