From d95efe69f13fd972f20aaa3d490eaf109b574096 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Sun, 13 Oct 2019 02:40:50 -0400 Subject: [PATCH] Refactor GetTemporaryDirectory into separate function and provide a way to get a temporary file name without actually creating it (yeah, right) --- .../TemporaryFileManager.cs | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs b/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs index 60b8577c..97772445 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs @@ -26,18 +26,28 @@ namespace UniversalEditor.UserInterface return FileName; } - public static string CreateTemporaryFile(string FileName, byte[] FileData = null) + public static string GetTemporaryDirectory() { if (mvarTemporaryFilePath == null) throw new InvalidOperationException(); if (!System.IO.Directory.Exists(mvarTemporaryFilePath)) { System.IO.Directory.CreateDirectory(mvarTemporaryFilePath); } - + return mvarTemporaryFilePath; + } + public static string GetTemporaryFileName() + { + string fpath = System.IO.Path.GetTempFileName(); + string fname = System.IO.Path.GetFileName(fpath); + System.IO.File.Delete(fpath); + return GetTemporaryDirectory() + System.IO.Path.DirectorySeparatorChar.ToString() + fname; + } + public static string CreateTemporaryFile(string FileName, byte[] FileData = null) + { FileName = SanitizeFileName(FileName); FileName = System.IO.Path.GetFileName(FileName); - string filePath = mvarTemporaryFilePath + System.IO.Path.DirectorySeparatorChar.ToString() + FileName; + string filePath = GetTemporaryDirectory() + System.IO.Path.DirectorySeparatorChar.ToString() + FileName; if (FileData != null) System.IO.File.WriteAllBytes(filePath, FileData); mvarTemporaryFileNames.Add(filePath); return filePath;