C#: Что самый быстрый путь состоит в том, чтобы генерировать уникальное имя файла?

Используйте функцию порядка

http://ca.php.net/ord

, например,

";
}
?>

29
задан Rex M 21 October 2009 в 19:07
поделиться

4 ответа

GUID будет чрезвычайно быстрым, , поскольку его реализация гарантирует, что Windows может сгенерировать не менее 16 384 GUID за 100 наносекунд . (Как отмечали другие, спецификация не гарантирует, а только допускает. Однако создание GUID действительно, очень быстрое. Действительно.) Вероятность коллизии в любой файловой системе в любом месте любой сети очень мала. Это достаточно безопасно, хотя было бы лучше всегда проверять, доступно ли это имя файла в любом случае, на самом деле вам даже не нужно этого делать.

Итак, вы не рассматриваете никаких операций ввода-вывода, кроме сохранить себя и <0. 2 миллисекунды (на тестовой машине) для генерации самого имени. Довольно быстро.

36
ответ дан 28 November 2019 в 01:20
поделиться

Если вы управляете местом назначения, в котором будут расположены файлы, и есть только один процесс и поток, которые записывают в него, просто добавьте некоторое автоматически увеличивающееся число к базовому имени.

Если вы не контролируете место назначения или вам нужна многопоточная реализация, используйте GUID.

3
ответ дан 28 November 2019 в 01:20
поделиться

Use an Int and increment it for each file.

0
ответ дан 28 November 2019 в 01:20
поделиться

Вы хотите System.IO.Path.GetTempFileName ()

Я не могу сказать, самый быстрый или нет, но это правильный способ сделать это, что более важно.

16
ответ дан 28 November 2019 в 01:20
поделиться