Временно записать файл на диск в C # - PullRequest
2 голосов
/ 20 октября 2010

У меня следующая проблема: у меня есть (двоичные) файлы , которые встроены в ресурс.По некоторым причинам я должен временно записать эти файлы на диск.Как мне поступить?Может быть, это можно сделать с помощью GetRandomFilename () или GetTempFileName ()?

Ответы [ 2 ]

9 голосов
/ 20 октября 2010

GetTempFileName() является логичным для использования в этой ситуации.

Как сказал Леппи, обязательно удалите файлы, когда закончите, чтобы избежать каких-либо проблем. GetTempFileName() вызовет IOException, если он используется для создания более 65535 файлов без удаления предыдущих временных файлов.

0 голосов
/ 20 октября 2010

Вы также можете создать Guid и сделать из него имя файла. Гарантированно уникальный и быстрый.

GetTempFile работает очень медленно, потому что ему приходится искать свободные имена файлов. Он просто создает префикс и добавляет к нему номер. Если файл с таким именем уже существует, пропускает это имя. Эта проверка требует времени, если ваша временная папка заполнена.

Также невозможно указать, в какой папке должен создаваться временный файл. GetTempFile всегда создает временный файл в разделе Windows. Если вы создаете большие временные файлы, вы хотите указать, где они должны храниться.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...