path.GetRandomFileName是否每次都會生成一個唯一的文件名?另外,Gettempfilename - 會生成一個唯一的名稱嗎?path.getrandomfilename是否會每次生成一個唯一的文件名?
6
A
回答
4
8
在我的系統Path.GetRandomFileName()
返回8.3格式的短名稱。
是否保證永不返回相同的名稱兩次?不,你不能保證,就像你不能用任何哈希算法一樣。只有有限的名字,所以最終你會得到一個副本。
然而,由於Path.GetRandomFileName()
使用RNGCryptoServiceProvider
這是一個密碼強的隨機數發生器,所以這個機會非常低。
總而言之,你不能以嚴格的方式保證它是唯一的。但重複的機會非常低,所以你可以假設它是。
相關問題
- 1. 如何生成一個隨機數,每次都是唯一的
- 2. MPMediaItem生成唯一的文件名
- 3. 生成唯一的文件名
- 4. 是否可以爲每個選項卡生成唯一的ID?
- 5. 從文件名生成唯一散列
- 6. Python工具生成一個唯一的臨時文件名
- 7. python的tempfile.mkstemp是否總是產生一個唯一的名字?
- 8. C#:什麼是生成唯一文件名的最快方法?
- 9. 生成唯一名稱?
- 10. 檢查隨機生成的用戶名是否唯一
- 11. Scribe Insight:每次生成一個新的csv文件
- 12. sql - 爲每一行生成一個唯一的隨機值
- 13. 如何爲每個JSON值生成唯一名稱
- 14. 在一個文件中的唯一行發生次數
- 15. 爲每個數組值生成一個唯一的隨機數
- 16. 獲取多次上傳的文件的Django生成的唯一名稱
- 17. 自動生成的每次更新的唯一編號列
- 18. 如何在python中每次生成一個新的唯一編號?
- 19. MarkLogic:如何生成唯一的文檔/ xml文件名
- 20. 每次執行的AES加密密鑰生成是否一致?
- 21. 每天生成唯一的序列號
- 22. 查找是否每6個月發生一次事件
- 23. Imagemagick:一次生成多個文件
- 24. 是否有一個函數來生成複製文件的文件名?
- 25. 生成唯一
- 26. 生成一個唯一的IV頭文件
- 27. DiskDrive簽名是否唯一?
- 28. 訪問令牌中生成的Facebook ID是否對每個會話都是唯一的?
- 29. 如何爲上傳的圖片生成唯一的文件名
- 30. 保存帶有唯一名稱的生成的Word文件(mailmerge)
你會碰到大約一億個文件名。根據你願意接受的碰撞概率,它可能會變得不舒服大約一百萬個文件名。 – CodesInChaos
就我個人而言,我會使用128位隨機值而不是55位。可能不適合8.3文件名,但DOS是相當死的,所以誰在乎? – CodesInChaos
GetRandomFileName具有與熵無關的次要動機。儘管NTFS支持很長的路徑名,但除了最新版本以外,.NET的大多數版本都限於MAX_PATH。在很多用例中,有必要在環境定義的TEMP文件夾下創建幾個級別的隨機文件夾。 GetRandomFileName以短名稱對熵的50多位進行編碼,這使得路徑過長的錯誤發生的可能性較小。除此之外,我同意可以遵循相同的邏輯並設計一個使用更多熵的自定義實現。 – rwong