只读设置为 false 后立即使用只读文件
Read-only file in use right after read-only set to false
我正在尝试使用以下代码删除只读文件。
var fileInfo = new FileInfo(saveLocation);
fileInfo.IsReadOnly = false;
fileInfo.Delete();
到第三行时,抛出如下异常
Message: The process cannot access the file '\filepath\filename.pdf' because it is being used by another process.
注意:\\filepath\filename.pdf 不是实际的文件路径,我只是用它来替换更长的路径
我查看了文件,在代码运行前设置为只读,代码运行后就不是了。
我认为当一个文件以只读方式打开时它不被认为是在使用中,我是不是不正确?我很确定对于像 .xlsx 文件一样糟糕的 Microsoft Office 文件是正确的,但对于 PDF 可能不是这样?
最终,我的目标是能够将此文件的更新版本推送到共享位置,即使某些用户在他们的计算机上打开了该文件,这就是我最初将其设置为只读的原因。
Message: The process cannot access the file '\filepath\filename.pdf' because it is being used by another process.
这与只读文件不同。
您可以在代码中找到哪个进程正在锁定文件
你也可以通过命令行了解
更新
根据您的评论,您似乎希望在处理文件期间对其进行独占锁定
open file in exclusive mode in C#
Command-line tool for finding out who is locking a file
我正在尝试使用以下代码删除只读文件。
var fileInfo = new FileInfo(saveLocation);
fileInfo.IsReadOnly = false;
fileInfo.Delete();
到第三行时,抛出如下异常
Message: The process cannot access the file '\filepath\filename.pdf' because it is being used by another process.
注意:\\filepath\filename.pdf 不是实际的文件路径,我只是用它来替换更长的路径
我查看了文件,在代码运行前设置为只读,代码运行后就不是了。
我认为当一个文件以只读方式打开时它不被认为是在使用中,我是不是不正确?我很确定对于像 .xlsx 文件一样糟糕的 Microsoft Office 文件是正确的,但对于 PDF 可能不是这样?
最终,我的目标是能够将此文件的更新版本推送到共享位置,即使某些用户在他们的计算机上打开了该文件,这就是我最初将其设置为只读的原因。
Message: The process cannot access the file '\filepath\filename.pdf' because it is being used by another process.
这与只读文件不同。
您可以在代码中找到哪个进程正在锁定文件
你也可以通过命令行了解
更新
根据您的评论,您似乎希望在处理文件期间对其进行独占锁定
open file in exclusive mode in C#
Command-line tool for finding out who is locking a file