首页 / C#开发 / 正文

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

21038 发布于: 2014-11-30 读完约需3分钟
.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#)生成指定长度的随机字符串的通用方法

下一篇: 推荐一个.NET(C#)的HTTP辅助类组件--RestSharp

本文永久链接码友网 » .NET(C#)如何判断一个指定的文件是否正在被其他程序所占用(或者文件是否正在使用中)

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册