在.NET中获取/打开临时文件

时间:2010-04-29 23:07:50

标签: c# .net

我想做类似下面的事情。什么函数返回一个打开的唯一文件?所以我可以确保它是我的,我不会覆盖任何东西或写一个复杂的fn generate / loop

BinaryWriter w = GetTempFile(out fn);
w.close();
File.Move(fn, newFn);

4 个答案:

答案 0 :(得分:19)

有两种方法:

通常第一种方法就足够了; GetRandomFileName的文档说:

  

当文件系统的安全性至关重要时,应该使用此方法而不是GetTempFileName。

答案 1 :(得分:3)

另一种选择是TempFileCollection类。它提供了一个IDisposable包装器,就像Path.GetTempFileName()的文档中建议的一样。

答案 2 :(得分:2)

您可以这样做:

var path = Path.GetTempFileName();
var stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None);
var writer = new BinaryWriter(stream);
  ...

答案 3 :(得分:1)

可以使用GetTempFileName()方法获取相当独特的临时文件名。