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.
精彩评论