我想做类似下面的事情。什么函数返回一个打开的唯一文件?所以我可以确保它是我的,我不会覆盖任何东西或写一个复杂的fn generate / loop
BinaryWriter w = GetTempFile(out fn);
w.close();
File.Move(fn, newFn);
答案 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()方法获取相当独特的临时文件名。