Файлы во временной папке автоматически удаляются? - PullRequest
17 голосов
/ 14 февраля 2010

Если я создаю какой-либо файл с помощью Path.GetTempPath () - автоматически ли он удаляется на каком-то этапе или я должен удалить его?

Ответы [ 3 ]

24 голосов
/ 14 февраля 2010

<a href="http://msdn.microsoft.com/en-us/library/system.io.fileoptions.aspx" rel="nofollow noreferrer">FileOptions.DeleteOnClose</a> приведет к автоматическому удалению файла при закрытии. Это также работает, если программа завершена из-за исключения.

Например, как указано в этот ответ :

using (FileStream fs = new FileStream(Path.GetTempPath() + "foo.bar",
       FileMode.OpenOrCreate, FileAccess.ReadWrite, FileShare.None,
       4096, FileOptions.RandomAccess | FileOptions.DeleteOnClose))
{
    // temp file exists
}

// temp file is gone
13 голосов
/ 14 февраля 2010

Нет, вам нужно будет вручную удалить файл. Path.GetTempPath () просто дает вам путь к временной папке.

2 голосов
/ 14 февраля 2010

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

Тем не менее, после закрытия файла вы всегда должны учитывать тот факт, что он может не появиться в следующий раз, когда вы захотите его, и что вам, возможно, потребуется его воссоздать. Например, в Windows есть «инструмент очистки диска», который может запускаться, когда места становится мало, по указанию пользователя или по расписанию ...

...