如何下载,然后在ASP.NET中正确删除文件?

时间:2016-08-16 09:18:05

标签: asp.net file downloading-website-files

我最近偶然发现了这个问题:在我的应用程序中,我为用户提供了从列表中下载多个文件的选项,方法是将它们放入.zip文件夹然后下载。我自然希望下载完成后删除.zip文件夹。这是我的方法:

       try {

            Response.Clear();
            Response.ContentType = "application/zip";
            Response.AddHeader("Content-Disposition", "attachment; filename=filename.zip");
            Response.TransmitFile(archive);
            Response.Flush();
            success = success && true;

            return success;

        } catch {

            return false;

        } finally {

            System.IO.File.Delete(archive);
            Response.End();

        }

现在,布尔值只是表明下载是否成功,我认为它们现在不重要。 我认为这是如何工作的,程序首先尝试将文件传输到客户端,如果没有错误发生,它会跳过catch块,只有下载之后它才会删除archive文件

但是,我经常在The process cannot access the file because it is being used by another process.行上收到错误System.IO.File.Delete(archive);。这不会每次都发生,据我所知,这是相当随机的。 任何人都可以在解决方案中暗示我吗?

0 个答案:

没有答案