我需要生成一个唯一的临时文件.csv扩展.

我现在做的是

string filepath = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");

然而,这并不能保证我的.csv文件将是唯一的.

我知道我碰过的几率很低(特别是如果你认为我不删除.tMP文件),但是这个代码对我来说不太好.

当然,我可以手动生成随机文件名,直到我最终找到唯一的文件名(这应该不是问题),但我很想知道其他人是否找到了处理此问题的好方法.

推荐答案

保证(统计上)独一无二:

string fileName = System.IO.Path.GetTempPath() + Guid.NewGuid().ToString() + ".csv"; 

(引用维基上关于碰撞概率的文章:

...一个人的年度风险是被

编辑:另请参阅JaredPar的 comments .

.net相关问答推荐

删除数据库项目中的表

如何将 signalR 添加到不同项目中的后台服务?

使属性只能通过绑定的 Editor(component) 编辑

关于在 .NET 中干净地终止线程的问题

单击关闭按钮时隐藏表单而不是关闭

Silverlight 与 Flex

指定的版本字符串不符合要求的格式 - major[.minor[.build[.revision]]]

重新启动(回收)应用程序池

什么是 project.lock.json?

如何使用反射在 .NET 中调用重载方法

.NET 中是否有可序列化的通用键/值对类?

如何异步 Files.ReadAllLines 并等待结果?

风格上的差异:IDictionary vs Dictionary

是否可以完全用托管的 .NET 语言编写 JIT 编译器(本地代码)

场与财产.性能优化

log4net的正确使用方法(记录器命名)

从流中获取 TextReader?

IEnumerable vs IReadonlyCollection vs ReadonlyCollection 用于公开列表成员

不签署 .NET 程序集有什么问题吗?

连接字符串而不是使用一堆 TextBlocks