C# 如何判断一个文件是否被占用

 时间:2026-02-12 00:24:51

1、using System.IO;

using System.Runtime.InteropServices;

[DllImport("kernel32.dll")]

public static extern IntPtr _lopen(string lpPathName, int iReadWrite);

[DllImport("kernel32.dll")]

public static extern bool CloseHandle(IntPtr hObject);

public const int OF_READWRITE = 2;

public const int OF_SHARE_DENY_NONE = 0x40;

public readonly IntPtr HFILE_ERROR = new IntPtr(-1);

private void button1_Click(object sender, EventArgs e)

{

    string vFileName = @"c:\temp\temp.bmp";

    if (!File.Exists(vFileName))

    {

        MessageBox.Show("文件都不存在!");

        return;

    }

    IntPtr vHandle = _lopen(vFileName, OF_READWRITE | OF_SHARE_DENY_NONE);

    if (vHandle == HFILE_ERROR)

    {

        MessageBox.Show("文件被占用!");

        return;

    }

    CloseHandle(vHandle);

    MessageBox.Show("没有被占用!");

}

2、public static bool IsFileInUse(string fileName)

 {

        bool inUse = true;

        FileStream fs = null;

        try

        {

            fs = new FileStream(fileName, FileMode.Open, FileAccess.Read,

            FileShare.None);

            inUse = false;

        }

        catch

        {

        }

        finally

        {

            if (fs != null)

                fs.Close();

        }

        return inUse;//true表示正在使用,false没有使用

}

  • Windows Server 2008操作系统如何新建域组帐户
  • editplus文本替换方法
  • 易语言“程序延时”命令问题的解决定时关机软件
  • 易语言怎么计算加法?
  • 如何在Windows10系统通过freeFTPd搭建FTP服务器
  • 热门搜索
    枸杞子怎么吃效果最好 路由器连接不上 控制面板在哪里打开 12306怎么改签 韩金靓染发剂怎么样 火焰山在哪里 去哪儿旅游 换驾照去哪里 团体旅游 人妖是怎么回事