我需要将文件复制到tmp位置才能操作它。我需要确保我始终可以复制文件。
我使用的代码如下:
string tmpFile = Path.Combine(Path.GetTempPath(), Path.GetRandomFileName());
提前致谢。
答案 0 :(得分:3)
或许使用Path.GetTempFileName
代替?
string tmpFile = Path.GetTempFileName();
该方法可能会抛出IOException
,所以你应该在某个时候抓住它。具体取决于该代码存在的上下文。
请注意,此方法还会在磁盘上创建文件,因此不存在其他进程在此调用与代码写入文件的时间之间创建同名文件的风险。
答案 1 :(得分:2)
答案 2 :(得分:1)
出了什么问题:
string tmpFile = Path.GetTempFileName();
来自Path.GetTempFileName()上的MSDN:
在磁盘上创建一个唯一命名的零字节临时文件并返回 该文件的完整路径。该文件的扩展名为.TMP。
它确实无法获取已存在的文件以及有关失败方案的问题,如果它无法创建此类文件:
如果习惯了,GetTempFileName方法将引发IOException 创建超过65535个文件而不删除以前的临时文件 文件。
如果没有可用的唯一临时文件名,GetTempFileName方法将引发IOException。要解决此错误,请删除 所有不需要的临时文件。