首页 > 其他分享 >临时文件夹控制器

临时文件夹控制器

时间:2023-12-08 10:34:33浏览次数:23  
标签:控制器 string 临时 rootPath 文件夹 tempDir public

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

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

控制类代码:

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);
    //临时文件夹执行代码
}

标签:控制器,string,临时,rootPath,文件夹,tempDir,public
From: https://www.cnblogs.com/wzwyc/p/17884619.html

相关文章

  • VMware17 ubuntu18.04.5安装好后无法访问win11共享文件夹的问题
    1在关闭虚拟机的情况下,点击虚拟机设置,CD/DVD设置使用ISO镜像文件,并设置好镜像路径。2启动虚拟机,此时重新安装VMwaretools按钮变成有效状态,点击该按钮,如果虚拟机进入系统后,该按钮会变成无效状态。3等待虚拟机自动下载VMwaretools,下载后在桌面可以看到VMwaretoolsDVD光盘,......
  • 【环境配置记录】ubuntu用samba共享文件夹给windows
    中文社区真的不太行,英文社区资源丰富很多转载https://askubuntu.com/questions/1462387/trying-to-samba-share-a-folder-always-gives-errors的答案 Pleaseseethefollowinginstallationguideline.Itcaneffectivelysolvetheoutstandingissueof'netusershare'r......
  • 定时备份lunix文件夹
    inio需要备份,只设置备份文件夹备份,因为minio有挂载文件,所以只要把挂载文件夹备份就好了;备份脚本如下:LOG_FILE="/data/backup/minio/logfile.log"write_log(){localmessage=$1echo"$(date+"%Y-%m-%d%H:%M:%S")-$message">>"$LOG_FILE"}write_......
  • 8051微控制器的程序用于控制LED的闪烁
    这段代码是一个基于8051微控制器的程序,用于控制LED的闪烁。程序使用了定时器中断来实现LED的闪烁效果。首先,定义了一个全局变量`TimerTick`来计数中断次数,以及一个标志位`TimeOver`用于在主函数中切换端口引脚的状态。然后,定义了一个名为`timer0`的中断服务例程,该例程在定时器0中......
  • 使用funcgraph-retval和bpftrace/kprobe快速定位并解决cpu控制器无法使能的问题
    版本Linux6.5背景在学习cgroupv2的时候,想给子cgroup开启cpu控制器结果失败了:#查看可以开启哪些控制器root@ubuntu-vm:/sys/fs/cgroup#catcgroup.controllerscpusetcpuiomemoryhugetlbpidsrdmamisc#上面看到,是支持cpu控制器的,通过下面命令查看目前子cgroup开启......
  • js上传文件夹的功能如何实现
    在JavaScript中无法直接上传整个文件夹,但可以通过以下步骤实现上传文件夹的功能:1.使用``标签来选择文件夹。该标签支持同时选择多个文件和文件夹。2.监听文件夹选择变化的事件,并获取所选择的文件和文件夹。constfileInput=document.querySelector('input[type="file"]')......
  • windows 文件夹共享 设置免密共享
    https://jingyan.baidu.com/article/86f4a73ea60a6f37d6526985.html https://blog.csdn.net/lipengfei_1993/article/details/106297073  不要密码共享有些上位机或者AOI相机的data,可以通过共享访问文件进行解析。把每一台aoi的电脑设置共享,然后在在机房的一台工控机安装......
  • vscode 工作区与文件夹设置
    背景:学习vue3的时候发现vue2对应的vetur插件 与vue3的volar插件冲突,于是开始了解vscode怎么实现兼容多项目兼容不用配置。项目设置管理为了适应不同项目的需要不一样的项目设置,vscode推出了文件夹设置(Folder),将差异的配置存放在项目根目录的.vscode/setting.json中,打开项目......
  • linux文件夹
    摘抄:https://zhuanlan.zhihu.com/p/78805412linux下各文件夹的结构说明及用途介绍:/bin:二进制可执行命令。/dev:设备特殊文件。/etc:系统管理和配置文件。/etc/rc.d:启动的配置文件和脚本。/home:用户主目录的基点,比如用户user的主目录就是/home/user,可以用~user表示。/lib:标准......
  • seafile获取token和文件夹ID
    获取tokencurl-d"[email protected]&password=tkv7zjV4P0Rq"http://xxxxxxxx:50018/api2/auth-token/双因素认证:curl-d"[email protected]&password=tkv7zjV4P0Rq" -H'X-SEAFILE-OTP:<token>......