Если вы хотите повторно использовать ваши временные файлы, например open \ close \ read \ write \ etc, то очистка их на уровне выгрузки AppDomain может быть полезной.
Это можно использовать в сочетании спомещая временные файлы в хорошо известный подкаталог временного местоположения и следя за тем, чтобы этот каталог удалялся при запуске приложения, чтобы обеспечить выполнение грязных отключений.
Базовый пример метода (собработка исключений удалена вокруг удаления для краткости).Я использую эту технику в модульных тестах на основе файлов, где она имеет смысл и полезна.
public static class TempFileManager
{
private static readonly List<FileInfo> TempFiles = new List<FileInfo>();
private static readonly object SyncObj = new object();
static TempFileManager()
{
AppDomain.CurrentDomain.DomainUnload += CurrentDomainDomainUnload;
}
private static void CurrentDomainDomainUnload(object sender, EventArgs e)
{
TempFiles.FindAll(file => File.Exists(file.FullName)).ForEach(file => file.Delete());
}
public static FileInfo CreateTempFile(bool autoDelete)
{
FileInfo tempFile = new FileInfo(Path.GetTempFileName());
if (autoDelete)
{
lock (SyncObj)
{
TempFiles.Add(tempFile);
}
}
return tempFile;
}
}