Не удается удалить временные файлы после возврата FileStream

У меня есть функция в приложении C # MVC, которая создает временный каталог и временный файл, затем открывает файл с помощью FileStream, возвращает FileStream вызывающей функции, а затем должен удалить временные файлы. Однако я не знаю, как удалить временный каталог и файл, потому что он всегда выдает ошибку, говоря:процесс не может получить доступ к файлу, потому что он используется другим процессом. " Это то, что я пробовал, но FileStream все еще использует временный файл в блоке finally. Как я могу вернуть FileStream и удалить временные файлы?

public FileStream DownloadProjectsZipFileStream()
{
    Directory.CreateDirectory(_tempDirectory);
    // temporary file is created here
    _zipFile.Save(_tempDirectory + _tempFileName);

    try
    {
        FileStream stream = new FileStream(_tempDirectory + _tempFileName, FileMode.Open);
        return stream;
    }
    finally
    {
        File.Delete(_tempDirectory + _tempFileName);
        Directory.Delete(_tempDirectory);
    }
}

Функция, к которой возвращается FileStream, выглядит следующим образом:

public ActionResult DownloadProjects ()
{
    ProjectDownloader projectDownloader = new ProjectDownloader();

    FileStream stream = projectDownloader.DownloadProjectsZipFileStream();
    return File(stream, "application/zip", "Projects.zip");
}

Обновить: Я забыл упомянуть, что размер почтового файла составляет 380 МБ. Я получаю исключение системы из памяти при использовании MemoryStream.

Ответы на вопрос(5)

Ваш ответ на вопрос