From 122394100719ec0302bb1a52fafac4e9a1613878 Mon Sep 17 00:00:00 2001 From: Michael Becker Date: Fri, 6 Sep 2019 20:34:18 -0400 Subject: [PATCH] Register temporary directory without specifying any names --- .../UniversalEditor.UserInterface/Engine.cs | 4 ++++ .../TemporaryFileManager.cs | 20 +++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs b/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs index b1601af8..e784e284 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/Engine.cs @@ -1403,6 +1403,8 @@ namespace UniversalEditor.UserInterface // overridden with a switch (/basepath:...) ? mvarBasePath = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location); + TemporaryFileManager.RegisterTemporaryDirectory(); + BeforeInitialization(); // Initialize the branding for the selected application @@ -1421,6 +1423,8 @@ namespace UniversalEditor.UserInterface BookmarksManager.Save(); RecentFileManager.Save(); ConfigurationManager.Save(); + + TemporaryFileManager.UnregisterTemporaryDirectory(); } public void RestartApplication() { diff --git a/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs b/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs index 7e8bc7ba..0c111e4b 100644 --- a/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs +++ b/CSharp/Libraries/UniversalEditor.UserInterface/TemporaryFileManager.cs @@ -43,6 +43,26 @@ namespace UniversalEditor.UserInterface return filePath; } + public static bool RegisterTemporaryDirectory() + { + while (true) + { + string pathName = System.IO.Path.GetRandomFileName(); + string path = System.IO.Path.Combine(new string[] + { + System.IO.Path.GetTempPath(), + pathName + }); + + if (!System.IO.Directory.Exists(path)) + { + System.IO.Directory.CreateDirectory(path); + + mvarTemporaryFilePath = path; + return true; + } + } + } public static bool RegisterTemporaryDirectory(string prefix, int maxNameLength) { if (mvarTemporaryFilePath != null)