Skip to content

Commit 3b55a7f

Browse files
committed
[FlashpointInstaller] Only delete Flashpoint files when installation is canceled
1 parent 37bf324 commit 3b55a7f

File tree

1 file changed

+20
-3
lines changed

1 file changed

+20
-3
lines changed

FlashpointInstaller/src/Forms/Operate.cs

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ public partial class Operate : Form
2727
ZipArchive archive;
2828
IReader reader;
2929

30+
List<string> extractedFiles = new List<string>();
31+
3032
long byteProgress = 0;
3133
long byteTotal = 0;
3234

@@ -166,6 +168,8 @@ private void ExtractComponents()
166168
writer.WriteLine(string.Join(" ", header));
167169
}
168170

171+
extractedFiles.Add(infoFile);
172+
169173
if (workingComponent.Size == 0) return;
170174

171175
using (archive = ZipArchive.Open(stream))
@@ -187,6 +191,8 @@ private void ExtractComponents()
187191
ExtractFullPath = true, Overwrite = true, PreserveFileTime = true
188192
});
189193

194+
extractedFiles.Add(Path.Combine(destPath, reader.Entry.Key.Replace('/', '\\')));
195+
190196
using (TextWriter writer = File.AppendText(infoFile))
191197
{
192198
writer.WriteLine(Path.Combine(workingComponent.Path, reader.Entry.Key).Replace("/", @"\"));
@@ -276,12 +282,23 @@ await Task.Run(() =>
276282

277283
if (Directory.Exists(FPM.Main.DestinationPath.Text))
278284
{
279-
foreach (string file in Directory.EnumerateFiles(FPM.Main.DestinationPath.Text))
285+
foreach (string file in extractedFiles)
280286
{
281287
try { File.Delete(file); } catch { }
282-
}
283288

284-
try { Directory.Delete(FPM.Main.DestinationPath.Text, true); } catch { }
289+
string folder = Path.GetDirectoryName(file);
290+
291+
while (folder != Directory.GetParent(FPM.Main.DestinationPath.Text).ToString())
292+
{
293+
if (Directory.Exists(folder) && !Directory.EnumerateFiles(folder, "*", SearchOption.AllDirectories).Any())
294+
{
295+
try { Directory.Delete(folder, true); } catch { }
296+
}
297+
else break;
298+
299+
folder = Directory.GetParent(folder).ToString();
300+
}
301+
}
285302
}
286303
});
287304

0 commit comments

Comments
 (0)