File used by another process
本问题已经有最佳答案,请猛点这里访问。
很多时候,当我们试图在Windows平台上写入文件时,都会出错,
"进程无法访问文件'xxx',因为另一进程正在使用它。"
如何在写入另一个进程未使用的文件之前签入C?
基本上,您不能-您必须尝试打开文件进行写入,如果您遇到异常,则无法写入:(
即使你可以先做一个单独的检查,结果在你开始写之前就已经过时了——你仍然可以在以后以这个异常结束。
如果框架提供了一个
这里唯一的选择是捕获生成的异常并适当地处理它。有关完整的讨论,请参阅其他两个SO线程:
- 如何检查文件锁定?
- 检测文件是否被另一个进程(或实际上是同一进程)锁定
在代码中使用文件后,必须将其发送到EDOCX1[1]
1 2 3 | FileStream file = new FileStream(fileName, FileMode.Open, FileAccess.Read); //file is opened //you use the file here file.Close(); //then you must to close the file |
您只需使用您想要的共享访问权尝试打开,并处理抛出的错误。
注意:有时文件不会打开,因为您指定的文件共享权限与某人已打开文件的文件共享权限冲突。
更多信息请参阅我的答案。
尝试将open命令放入try catch语句中。如果正在使用该文件,将引发IOException。
如果可以重命名,请尝试重命名该文件,然后确认没有其他进程正在访问该文件。最后,确保在同一文件夹中重命名了同一个文件。