使用.NET生成具有给定扩展名的唯一临时文件名

And*_*erd 8 .net c#

可能重复:
如何使用.net创建具有特定扩展名的临时文件?

可以通过调用在.NET中创建临时文件

string fileName = System.IO.Path.GetTempFileName();
Run Code Online (Sandbox Code Playgroud)

这将在临时目录中创建一个扩展名为.TMP的文件.

如果您特别希望它有不同的扩展名怎么办?为了这个例子,假设我需要一个以.TR5结尾的文件.

明显的(和错误的)解决方案是打电话

string fileName = Path.ChangeExtension(Path.GetTempFileName(), "tr5"))
Run Code Online (Sandbox Code Playgroud)

这里的问题是:

  • 它仍然在temp目录中生成一个空文件(例如tmp93.tmp),现在它将无限期地挂起
  • 没有保证生成的文件名(tmp93.tr5)尚未存在

是否有一种简单而安全的方法来生成具有特定文件扩展的临时文件?