我需要验证特定文件是否打开以防止复制该文件。
我尝试了很多例子,但没有一个起作用!例如,我尝试这样做:
protected virtual bool IsFileLocked(FileInfo file)
{
FileStream stream = null;
try
{
stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}
catch (IOException)
{
//the file is unavailable because it is:
//still being written to
//or being processed by another thread
//or does not exist (has already been processed)
return true;
}
finally
{
if (stream != null)
stream.Close();
}
//file is not locked
return false;
}
我需要方向……我哪里失败了?建议?
如果你想知道是否你的申请已经打开文件,您应该保存FileStream
在一个字段中,并将该字段重置为null
当你关闭流时。然后你可以简单地测试并得到FileStream
文件的。
如果你想知道是否另一个应用程序文件已经打开,那么您无能为力。当您尝试打开文件时可能会遇到异常。但即使你知道,你也做不到防止复制该文件,因为您没有对该文件或其内容的引用FileStream
在您的应用程序中。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)