临时文件夹控制器

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

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

控制类代码:

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);
    //临时文件夹执行代码
}
posted @   wzwyc  阅读(12)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
点击右上角即可分享
微信分享提示