Reputation:
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, newFn);
Upvotes: 12
Views: 7745
Reputation: 8553
Another alternative is the TempFileCollection class. It provides an IDisposable wrapper much like what is suggested in the docs for Path.GetTempFileName().
Upvotes: 3
Reputation: 36534
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);
...
Upvotes: 2
Reputation: 5282
Can use the GetTempFileName() method to obtain a fairly unique temporary file name.
Upvotes: 1
Reputation: 354864
There are two methods for this:
This will create a temporary file and return its name.
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.
Upvotes: 19