【发布时间】:2009-02-13 22:29:30
【问题描述】:
是否有更好的方法来检查文件是否未锁定,然后打开文件以捕获异常。我有一个在目录上运行的文件监视程序,并且在文件在该位置完全移动/创建后,我需要对文件执行某些操作。抛出异常不会影响性能吗?有没有更好的办法?
Private Function FileAvailable(ByVal fileName As String) As Boolean
Try
Using inputStream As FileStream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None)
Return True
End Using
Catch ex As IOException
Return False
End Try
End Function
或
private bool FileAvailable(string fileName) {
try {
using (FileStream inputStream = File.Open(fileName, FileMode.Open, FileAccess.Read, FileShare.None)) {
return true;
}
}
catch (IOException ex) {
return false;
}
}
一位专家就最佳方法提出建议。谢谢
文件正在被复制到监视目录中。没有其他用户可以访问该目录。在我自己处理和移动文件之前,我只需要验证文件是否已完全复制到目录中。我需要独占访问权限。
【问题讨论】:
-
您必须定义“我需要对文件做些什么”的意思。不同的操作意味着不同的访问权限、共享权限……
-
正在将文件复制到监视目录中。没有其他用户可以访问该目录。在我自己处理和移动文件之前,我只需要验证文件是否已完全复制到目录中。我需要独占访问权限。