Я читаю файл с сервера SQL и временно записываю его на диск, чтобы другая программа могла получить к нему доступ.Довольно просто с Path.GetTempFileName ().
Моя проблема в том, что мне нужно удалить эти временные файлы после завершения процесса.Я делаю это с помощью класса FileStream, например:
using (FileStream fs = new FileStream(filename, FileMode.Create, FileAccess.Write, FileShare.None, 8, FileOptions.DeleteOnClose))
{
//code here ultimately accessing the temp file
}
При установленном fileOptions файл удаляется после завершения с использованием и удаления FileStream.Файл определенно создается и удаляется по команде, но любой процесс, обращающийся к файлу, отвечает «Процесс не может получить доступ к файлу, потому что он используется ...»
Понятно, если мой FileStreamвсе еще имеет доступ к файлу (я безуспешно пытался изменить FileShare; этот другой процесс не является файловым потоком.)
Я надеюсь избежать использования методов удаления (что потребует большего количества перехватов ошибок).Есть ли простой способ (используя FileStream) создать временный файл и удалить его после завершения другого процесса?