编程语言
首页 > 编程语言> > C# 判断文件是否被占用

C# 判断文件是否被占用

作者:互联网

using System.IO;
using System.Runtime.InteropServices;

namespace DarkBlue.FileOccupied
{
    public sta class FileHlper
    {

        [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);

        public bool IsOccupied(string fileFullNmae)
        {
            if (!File.Exists(fileFullNmae)) return false;
            IntPtr vHandle = _lopen(fileFullNmae, OF_READWRITE | OF_SHARE_DENY_NONE);
            var flag = vHandle == HFILE_ERROR;
            CloseHandle(vHandle);
            return flag;
        }
    }
}

 

标签:文件,kernel32,IntPtr,C#,占用,fileFullNmae,int,vHandle,public
来源: https://www.cnblogs.com/shengfly/p/16371278.html