为何下载完成后无法删除文件!
if (File.Exists(fileName))
{
System.IO.FileInfo file=new System.IO.FileInfo(fileName);
//File.Delete(fileName);放在这里,下载时提示找不到文件.
Response.Clear();
Response.AddHeader("Content-Disposition","attachment;filename="+file.Name);
Response.AddHeader("Content-Length",file.Length.ToString());
Response.ContentType="application/octet-stream";
Response.WriteFile(file.FullName);
Response.End();
//File.Delete(fileName);放在这里下载完成后不会删除文件.
}
问题点数:50、回复次数:10Top
1 楼flyboy20(往事如烟)回复于 2005-08-15 10:04:48 得分 0
差个结束语Top
2 楼zhoumins(zm)回复于 2005-08-15 10:27:32 得分 10
....
Response.WriteFile(file.FullName);
Response.Flush();
File.Delete(fileName);//放在这里下载完成后不会删除文件.
Response.End();Top
3 楼tigerwen01(小虎)回复于 2005-08-15 10:40:10 得分 10
Response.End(); //程序运行到这里就不再往下走了,当然不会运行File.Delete(fileName);这条语句
//File.Delete(fileName);放在这里下载完成后不会删除文件.
Top
4 楼codeangel(http://www.wSoft.Net)回复于 2005-08-15 11:06:52 得分 0
同意tiger
Top
5 楼anyqu(情深为谁)回复于 2005-08-15 13:49:07 得分 0
这种方法我已经试过了.发现个问题,这个文件是用OWC生成的.加上这段代码后页面运行巨慢.最后提示无法找到页面.Top
6 楼zhoumins(zm)回复于 2005-08-15 14:09:37 得分 0
这个文件是用OWC生成的---和文件类型有关系吗?
你换个文件下载试试。Top
7 楼hchxxzx(NET?摸到一点门槛)回复于 2005-08-15 14:11:33 得分 20
注意此句
Response.ContentType="application/octet-stream";
此语句输出时,当前页面已经非HTML页面了,后续的删除语句无法继续执行(失效).
另外,本身的
Response.End();
也已经结束的页面的继续操作.
总的来说,此类下载页面,在文件下载之后,该文件之后的语句将无法继续执行,无论你用什么方法.Top
8 楼sxBamboo(竹子)回复于 2005-08-15 14:25:16 得分 5
Response.End();
是停止运行下面的程序了的Top
9 楼anyqu(情深为谁)回复于 2005-08-16 10:46:00 得分 0
Response.ContentType="application/octet-html";
改成这样也不行呀!还是提示无法找到页面呀!而且删除是写在Response.End();前面了!Top
10 楼hchxxzx(NET?摸到一点门槛)回复于 2005-08-16 12:12:37 得分 5
在下载页面进行删除是做不到的,不要再想了
你把删除放到结束页面之前,那怎么下载呢?
要么下载,要么删除,两者不可同时存在Top




