避免像
(1)进程无法访问该文件,因为它被另一个进程使用
在进行任何进一步处理之前,我使用以下方法测试文件的可访问性.
private bool CheckIfFileBeingUsed(string FilePath)
{
FileStream Fs = null;
try
{
Fs = File.Open(FilePath, FileMode.Open, FileAccess.Read, FileShare.None);
Fs.Close();
}
catch (Exception)
{
return true; //Error File is being used
}
return false; //File is not being used.
}
Run Code Online (Sandbox Code Playgroud)
任何人都可以告诉我有任何Windows API或其他解决方案来测试文件可访问性而不是上面的File.Open方法吗?
看起来你在这里重复努力.因为尝试打开文件进行处理会抛出你在这里捕获的相同异常,为什么不继续尝试处理文件,并在出现异常时处理异常?
假设由于某种原因这是不可能的,这样的测试仍然不完全可靠,因为你现在有一个竞争条件.即使此测试通过,也无法保证当您在文件上运行其他代码时文件将处于相同状态.这就是为什么更容易尝试做你想做的事情,并在那时处理任何例外.
| 归档时间: |
|
| 查看次数: |
1724 次 |
| 最近记录: |