开发者

Get/open temp file in .NET

I would like to do something like the below. What function returns me an unique file that is opened? so i can ensure it is mine and i wont overwrite anything or write a complex fn generate/loop

BinaryWriter w = GetTempFile(out fn);
w.close();
File.Move(fn, n开发者_JAVA技巧ewFn);


There are two methods for this:

  • Path.GetTempFileName

    This will create a temporary file and return its name.

  • Path.GetRandomFileName

    This will use a cryptographically strong, random string as file name and won't create the file for you.

Usually the first method suffices; the documentation for GetRandomFileName says:

When the security of your file system is paramount, this method should be used instead of GetTempFileName.


Another alternative is the TempFileCollection class. It provides an IDisposable wrapper much like what is suggested in the docs for Path.GetTempFileName().


You can do something like this:

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


Can use the GetTempFileName() method to obtain a fairly unique temporary file name.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜