Если я создаю файл с помощью Path.GetTempPath() - он автоматически удаляется на каком-то этапе или это зависит от меня, чтобы удалить его?
Удалены ли файлы во временной папке?
Ответ 1
Нет, вам нужно будет вручную удалить файл. Path.GetTempPath() просто дает вам путь к папке temp.
Ответ 2
FileOptions.DeleteOnClose
приведет к автоматическому удалению файла при закрытии. Это также работает, если программа завершается исключением.
Например, как указано в этом ответе:
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
Ответ 3
В принципе, если ваше приложение не удаляет файл, оно все равно будет находиться до тех пор, пока ваше приложение не удалит его, и вы должны управлять файлами, создаваемыми вашим приложением на основе этой идеи.
Тем не менее, как только файл закрыт, вы всегда должны учитывать тот факт, что он может быть не там в следующий раз, когда вы этого захотите, и что вам может понадобиться его воссоздать. Например, в Windows есть "средство очистки диска", которое может запускаться, когда пространство становится низким, когда оно направлено пользователем или по расписанию...