IE下载后,文件打开被占用
BS开发的程序提供一个连接,下载文件,现在要求设置浏览器的下载为IE下载(不启用迅雷、电驴等),然后在IE的下载界面中,单击打开,以便直接打开临时文件。当下载完成时,启动了我的桌面程序,该桌面程序与我的文件是关联的(单实例程序,如果程序么有启动,双击文件能正常启动程序并打开文件;如果程序已启动,则在启动打开文件)。
现在的问题是:我直接单击打开能启动程序,但是异常捕捉说该文件被其他程序占用,不能打开。如单击的是保存,将文件存放于本地,却能正常打开,经检查文件也没有损坏;同样,去IE的临时文件目录下找,文件也存在,能通过我的桌面程序打开,经检查文件完好无损,就是在下载时启动的话就无法打开。
如果我的桌面程序(单实例)已经启动,通过浏览器下载打开的文件,还是会被程序捕捉到文件被占用的异常,不能正常打开。所以怀疑文件是不是被IE给占用了,如果是该怎么释放? --------------------编程问答-------------------- 问题的分析有一点点小推进,通过在桌面程序中添加文件访问权限修改的代码,在下载完成并打开之时,dt的360捕捉到了,说“发现一个未知程序要执行,建议拒绝”,当前进程显示的是IE浏览器,未知程序显示的是我的桌面程序,也就是说文件应该是被IE给占用的,但是这个问题出来之后,我就不知道怎么处理了,既然是被IE占用的,我似乎没法释放。那么在IE浏览器中直接打开doc或docx这样的文件,word或者wps文档是怎么启动并打开它的呢? --------------------编程问答-------------------- 文件流 木关闭? close下试试 你木贴代码 具体也帮不了你... --------------------编程问答-------------------- 看看代码中是否用到了文件流,用完没有关闭 --------------------编程问答-------------------- 首先,谢谢两位关注。
然后,请我补充一下我描述的不足:
1.文件的下载不是自己写的代码来实现的,比如我程序使用的文件可能是存放在网络硬盘中或者通过邮件附件发送的文件或者存放在文件中转站的文件,也就是说这个只是通过一个有效连接能提取文件就行。所以,跟文件流应该是没关系的,因为可能完全就跟浏览器没关系。
2.在IE下载中手动保存或者通过迅雷等下载软件下载后保存的文件,打开没有问题,并完好无损。
现在最头疼的事就是在IE下载中直接打开的时候,文件被IE占用了,我想应该有什么方法能解除这种占用,比如IE下载doc文件时,word能顺利打开,而不会被占用,那么我该怎么做?
3.基于以上,补充一下桌面程序的开发环境:Visual Studio 2008,C#开发语言。 --------------------编程问答-------------------- o(︶︿︶)o 唉 哥哥也遇到这个问题 烦死了 还在解决中
补充:.NET技术 , C#