我正在监视新文件的文件夹,需要处理它们.问题是偶尔文件打开失败,因为系统还没有完成复制.
测试文件是否完成复制的正确方法是什么?
澄清:我没有文件夹/文件的写权限,无法控制复制过程(它是用户).
Phi*_*ert 11
我认为唯一可靠的方法是尝试独占打开文件并捕获特定的异常.我通常讨厌使用普通应用程序逻辑的异常,但我担心这种情况没有其他办法(至少我还没有找到):
public bool FileIsDone(string path)
{
try
{
using (File.Open(path, FileMode.Open, FileAccess.Read, FileShare.None))
{
}
}
catch(UnauthorizedAccessException)
{
return false;
}
return true;
}
Run Code Online (Sandbox Code Playgroud)