临时文件夹控制器

发布时间 2023-12-08 10:31:49作者: wzwyc

应用中,有时候需要创建一个临时文件夹进行操作,操作完以后需要删除临时文件夹。

创建一个控制类,自动创建和删除临时夹。

控制类代码:

public class TempDirectoryController : IDisposable
{
	private string _tempDir;
	private readonly string _rootPath;

	/// <summary>
	/// 临时文件夹控制器
	/// </summary>
	/// <param name="rootPath">临时文件夹的根目录,如果不指定自动创建Temp文件夹</param>
	public TempDirectoryController(string rootPath = null)
	{
		if (rootPath == null)
		{
			_rootPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Temp");
		}
		else
		{
			_rootPath = rootPath;
		}
	}

	/// <summary>
	/// 获取临时文件夹路径
	/// </summary>
	/// <param name="create">是否自动创建文件夹,true自动创建,false只返回路径</param>
	/// <returns></returns>
	public string GetTempDirectory(bool create = false)
	{
		_tempDir = Path.Combine(_rootPath, Path.GetRandomFileName());
		if (create)
		{
			FileSystemHelper.TryCreateDirectory(_tempDir);
		}

		return _tempDir;
	}

	/// <summary>
	///
	/// </summary>
	public void Dispose()
	{
		if (_tempDir.IsContainText())
			FileSystemHelper.DeleteFileSystemEntry(_tempDir);
	}
}

使用示例:

using (var controller = new TempDirectoryController())
{
    var tempDir = controller.GetTempDirectory(true);
    //临时文件夹执行代码
}