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

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

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

有两种方法:

  • Path.GetTempFileName

    这将创建一个临时文件并返回其名称。

  • Path.GetRandomFileName

    这将使用加密强大的随机字符串作为文件名,不会为您创建文件。

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

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

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

你可以这样做:

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

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