.NET(C#)如何判断一个指定的文件是否正在被其他程序所占用或者说文件是否正在使用中。这里我们利用FileStream的Open方法捕获异常来判断指定文件是否正在使用,具体判断实现如下:
#region 文件是否被占用
/// <summary>
/// 文件是否被占用
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
static bool FileIsInUse(FileInfo file)
{
FileStream stream = null;
try
{
stream = file.Open(FileMode.Open, FileAccess.ReadWrite, FileShare.None);
}
catch (IOException)
{
//如果文件被占用,即
//1.文件正在被另一程序写入
//2.或者正在被另一线程处理
//3.或者文件不存在
//此处会抛出异常,我们就利用这个异常来判断指定文件是否被占用
return true;
}
finally
{
if (stream != null)
stream.Close();
}
//file is not locked
return false;
}
#endregion
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册