我正在监视新文件的文件夹并需要处理它们。问题是偶尔文件打开失败,因为系统还没有完成复制它。
测试文件是否完成复制的正确方法是什么?
澄清:
我没有文件夹/文件的写权限,也无法控制复制过程(它是用户)。
最佳答案
我认为唯一确定的方法是尝试以独占方式打开文件并捕获特定异常。我通常讨厌对正常的应用程序逻辑使用异常,但我担心对于这种情况没有其他方法(至少我还没有找到):
public bool FileIsDone(string path)
{
try
{
using (File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
{
}
}
catch(UnauthorizedAccessException)
{
return false;
}
return true;
}
关于.net - 如何测试文件是否在 .NET 中完全复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1152140/