gyo*_*fov 4 .net c# random filenames file
最近我得到了例外:
Message:
System.IO.IOException: The file 'C:\Windows\TEMP\635568456627146499.xlsx' already exists.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
Run Code Online (Sandbox Code Playgroud)
这是我用于生成文件名的以下代码的结果:
Path.Combine(Path.GetTempPath(), DateTime.Now.Ticks + ".xlsx");
Run Code Online (Sandbox Code Playgroud)
在意识到可以在一个Tick中创建两个文件之后,我将代码更改为:
Path.Combine(Path.GetTempPath(), Path.GetRandomFileName() + ".xlsx");
Run Code Online (Sandbox Code Playgroud)
但我仍然想知道新案件中上述例外的可能性是多少?
das*_*ght 11
在内部,GetRandomFileName用于RNGCryptoServiceProvider生成11个字符(名称:8 + ext:3)字符串.该字符串表示基数为32的编码数字,因此可能的字符串总数为32 11或2 55.
假设均匀分布,复制的机会大约是2 -55,或者是36万亿分之一.这相当低:相比之下,你赢得纽约乐透的机会大约高出一百万倍.
| 归档时间: |
|
| 查看次数: |
1409 次 |
| 最近记录: |