Мені потрібно генерувати унікальний тимчасовий файл із розширенням .csv.
Що я зараз роблю
string filename = System.IO.Path.GetTempFileName().Replace(".tmp", ".csv");
Однак це не гарантує, що мій .csv файл буде унікальним.
Я знаю, що шанси зіткнення у мене дуже низькі (особливо якщо ви вважаєте, що я не видаляю файли .tmp), але цей код мені не подобається.
Звичайно, я міг би вручну генерувати випадкові імена файлів, доки в кінцевому підсумку не знайду унікальне (що не повинно бути проблемою), але мені цікаво дізнатися, чи знайшли інші приємний спосіб вирішити цю проблему.
GetTempFileName()
створює новий файл щоразу, коли ви його викликаєте. - Якщо ви негайно зміните рядок на щось інше, ви просто створили новий файл з нульовим байтом у своєму темп-каталозі (і, як зазначали інші, це врешті-решт призведе до його збою, коли ви натиснете 65535 файли там ...) - - Щоб цього уникнути, не забудьте видалити будь-які файли, створені у цій папці (включаючи файли, повернуті в GetTempFileName()
ідеалі, в остаточному блоці).