TempStorage: change type of createdTempFiles to List

This commit is contained in:
Slavasil 2025-04-20 18:33:21 +03:00
parent 27ba72be33
commit 3fac697963

View File

@ -3,7 +3,7 @@
internal class TempStorage : IDisposable internal class TempStorage : IDisposable
{ {
private string directory; private string directory;
private Dictionary<FileStream, string> createdTempFiles; private List<string> createdTempFiles;
private Random rng; private Random rng;
public TempStorage() public TempStorage()
@ -16,17 +16,16 @@ internal class TempStorage : IDisposable
} while (Directory.Exists(directory)); } while (Directory.Exists(directory));
Directory.CreateDirectory(directory); Directory.CreateDirectory(directory);
createdTempFiles = new Dictionary<FileStream, string>(); createdTempFiles = new List<string>();
} }
public void Dispose() public void Dispose()
{ {
foreach (var kv in createdTempFiles) foreach (string filename in createdTempFiles)
{ {
kv.Key.Dispose(); if (File.Exists(filename))
if (File.Exists(kv.Value))
{ {
File.Delete(kv.Value); File.Delete(filename);
} }
} }
Directory.Delete(directory); Directory.Delete(directory);
@ -36,17 +35,17 @@ internal class TempStorage : IDisposable
{ {
string filename = directory + "/" + (prefix != null ? prefix + "-" : "") + RandomHexString(8) + (extension != null ? "." + extension : ""); string filename = directory + "/" + (prefix != null ? prefix + "-" : "") + RandomHexString(8) + (extension != null ? "." + extension : "");
FileStream file = File.Open(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.None); FileStream file = File.Open(filename, FileMode.Create, FileAccess.ReadWrite, FileShare.None);
createdTempFiles.Add(file, filename); createdTempFiles.Add(filename);
return (filename, file); return (filename, file);
} }
public void deleteTemporaryFile(FileStream file) public void deleteTemporaryFile(string filename)
{ {
if (createdTempFiles.ContainsKey(file)) if (createdTempFiles.Contains(filename))
{ {
File.Delete(createdTempFiles[file]); File.Delete(filename);
createdTempFiles.Remove(filename);
} }
file.Dispose();
} }
private string RandomHexString(int n) private string RandomHexString(int n)