Будет ли путь.GetRandomFileName генерировать уникальное имя файла каждый раз? Кроме того, как насчет Gettempfilename - будет генерировать уникальное имя?Будет ли путь path.getrandomfilename генерировать уникальное имя файла каждый раз?
ответ
Короткий ответ - да в обоих случаях.
В действительности получить это приведет к генерации 11 случайных символов, что означает, что есть (26 +10)^11 возможных имен (1.316217e + 17), поэтому шансы на создание одного и того же имени дважды отсутствуют и для всех практических целей.
Для получения дополнительной информации, которую я предлагаю вам прочитать this
В моей системе Path.GetRandomFileName()
возвращает короткое имя в формате 8.3.
Гарантируется ли никогда не возвращать одно и то же имя дважды? Нет, вы не можете этого гарантировать, так же, как и для любого алгоритма хэширования. Есть только конечное количество имен, так что в итоге вы получите дубликат.
Однако шанс для этого очень низкий, так как Path.GetRandomFileName()
использует RNGCryptoServiceProvider
, который является криптографически сильным генератором случайных чисел.
Чтобы подвести итог, вы не можете гарантировать строгим образом, что он будет уникальным. Но шанс на дубликат очень низок, поэтому вы можете предположить, что это так.
- 1. Создавать уникальное имя каждый раз, как поведение «Структура папки Windows»
- 2. ImageMagick создает уникальное имя файла
- 3. sql генерировать уникальное имя таблицы/вида
- 4. Как получить уникальное имя для каждого файла?
- 5. генерировать уникальное имя пользователя (omniauth + devise)
- 6. Powerbuilder - получить уникальное имя файла
- 7. Как создать следующее имя файла загрузки каждый раз + 1 значение?
- 8. CryptoJS как генерировать ключ каждый раз?
- 9. Как дать растровое изображение уникальное имя файла
- 10. Случайная карточка будет генерировать только один раз
- 11. Нужно ли генерировать идентификатор токена каждый раз перед вызовом webservice
- 12. Нужно ли уникальное имя SharedPreferences?
- 13. Как генерировать случайное число каждый раз
- 14. Php Как получить уникальное имя файла
- 15. Udev USB каждый раз другой путь
- 16. Имя файла Windows - Как проверить, будет ли имя файла действительным?
- 17. Уникальное имя файла в дереве каталогов MySQL
- 18. Будет ли static_cast запускаться каждый раз в условии цикла цикла?
- 19. Уникальное имя файла Linux, отсортированное по времени
- 20. Как динамически генерировать уникальное имя для каждого параметра в параметрах_from_collection_for_select?
- 21. Получите уникальное имя файла в многопоточном приложении
- 22. Как установить уникальное имя файла aws S3?
- 23. Создайте уникальное имя файла, добавив инкрементный номер
- 24. Уникальное имя файла в соответствии с содержимым файла
- 25. Python: Как создать уникальное имя файла?
- 26. Создать уникальное имя файла Windows batch
- 27. уникальное синтезированное имя
- 28. Изменить имя файла по 1 каждый раз (скрипт bash)
- 29. новое имя файла каждый раз при запуске python
- 30. сохранять имя пользователя в реестре каждый раз
Вы столкнетесь со сто миллионов имен файлов. В зависимости от вероятности столкновения, которую вы готовы принять, он может стать неудобным около миллиона имен файлов. – CodesInChaos
Лично я бы использовал 128-битные случайные значения вместо 55 бит. Может не соответствовать 8.3 именам файлов, но DOS довольно мертв, так кого это волнует? – CodesInChaos
GetRandomFileName имеет вторичную мотивацию, которая не связана с энтропией. Несмотря на то, что NTFS поддерживает очень длинные имена путей, большинство версий .NET, кроме последней, ограничены MAX_PATH. Во многих случаях использования необходимо создать несколько уровней рандомизированных папок под созданной в соответствии с окружающей средой папкой TEMP. GetRandomFileName кодирует 50 + бит энтропии в коротком имени, что делает слишком длинную ошибку с ошибкой. Помимо этого, я согласен с тем, что, вероятно, можно следовать той же логике и разработать пользовательскую реализацию, которая использует больше энтропии. – rwong