mirror of
https://github.com/AssetRipper/AssetRipper.git
synced 2025-12-11 20:15:29 +01:00
48 lines
1.1 KiB
C#
48 lines
1.1 KiB
C#
namespace AssetRipper.IO.Files.Utils;
|
|
|
|
public static class TemporaryFileStorage
|
|
{
|
|
private static string ExecutingDirectory => AppContext.BaseDirectory;
|
|
|
|
public static string LocalTemporaryDirectory { get; } = Path.Join(ExecutingDirectory, "temp", GetRandomString()[0..4]);
|
|
|
|
private static string temporaryDirectory = LocalTemporaryDirectory;
|
|
|
|
public static string TemporaryDirectory
|
|
{
|
|
get => temporaryDirectory;
|
|
set
|
|
{
|
|
if (!string.IsNullOrWhiteSpace(value))
|
|
{
|
|
temporaryDirectory = Path.GetFullPath(value);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void DeleteTemporaryDirectory()
|
|
{
|
|
if (Directory.Exists(TemporaryDirectory))
|
|
{
|
|
Directory.Delete(TemporaryDirectory, true);
|
|
}
|
|
}
|
|
|
|
private static string GetRandomString() => Guid.NewGuid().ToString();
|
|
|
|
public static string CreateTemporaryFolder()
|
|
{
|
|
string path = Path.Join(TemporaryDirectory, GetRandomString()[0..8]);
|
|
Directory.CreateDirectory(path);
|
|
return path;
|
|
}
|
|
|
|
public static string CreateTemporaryFile()
|
|
{
|
|
Directory.CreateDirectory(TemporaryDirectory);
|
|
string path = Path.Join(TemporaryDirectory, GetRandomString());
|
|
File.Create(path).Dispose();
|
|
return path;
|
|
}
|
|
}
|