.NET(C#)如何判断一个指定的文件是否正在被其他程序所占用(或者文件是否正在使用中)

C#开发 2014-11-30 11180阅读 0评论 0收藏 收藏本文

.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
 

转载请注明:图享网 » .NET(C#)如何判断一个指定的文件是否正在被其他程序所占用(或者文件是否正在使用中)

文章评论

获取验证码