【发布时间】:2015-03-23 17:54:45
【问题描述】:
我正在尝试使用以下代码删除只读文件。
var fileInfo = new FileInfo(saveLocation);
fileInfo.IsReadOnly = false;
fileInfo.Delete();
到第三行时,抛出如下异常
消息:进程无法访问文件“\\filepath\filename.pdf”,因为它正被另一个进程使用。
注意:\\filepath\filename.pdf 不是实际的文件路径,我只是用它来替换更长的路径
我查过文件,在代码运行前设置为只读,代码运行后就不是了。
我是否认为当文件以只读方式打开时它不被认为是在使用中?我很确定 Microsoft office 文件确实是 .xlsx 文件,但可能不适用于 PDF?
最终,我的目标是能够将此文件的更新版本推送到共享位置,即使某些用户在他们的计算机上打开了该文件,这也是我最初将其设置为只读的原因。
【问题讨论】:
-
错误信息与文件是否为只读无关。该文件被另一个进程锁定,阻止删除。在您启动程序之前,您的系统上是否正在运行某些东西可能会锁定该文件?
-
您可以使用 Process Explorer 查看哪个应用程序有打开该文件的句柄:technet.microsoft.com/en-us/sysinternals/bb896653.aspx(使用望远镜)