汇集软件下载,免费分享活动线报

C#判断文件是否正在被使用

金腾网小编 0

C#判断文件是否正在被使用

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;
using System.Runtime.InteropServices;
using System.Web.Mvc;

namespace HotelInventory.Web.Models.Repository
{
    public static class FileControlRepository1
    {
        [DllImport("kernel32.dll")]
        public static extern IntPtr _lopen(string lpPathName, int iReadWrite);//调用windowsdll
        
        [DllImport("kernel32.dll")]
        public static extern bool CloseHandle(IntPtr hObject);//调用windowsdll
        public const int OF_READWRITE = 2;//这些参数是不可少的,当然也可以不声明,直接将值赋值给对应的函数,这里只是生明变量将其存起来而已
        public const int OF_SHARE_DENY_NONE = 0x40;//这些参数是不可少的,当然也可以不声明,直接将值赋值给对应的函数,这里只是生明变量将其存起来而已
        public static readonly IntPtr HFILE_ERROR = new IntPtr(-1);  
        public static int IsFileOpen(string path)
        {
            string vFileName = path;
            if (!File.Exists(vFileName))
            {
             return 0;//文件不存在
            }
            IntPtr vHandle = _lopen(vFileName, OF_READWRITE | OF_SHARE_DENY_NONE);//windows Api上面有定义扩展方法
            if (vHandle == HFILE_ERROR)
            {
             return 2;//文件被占用
            }
            CloseHandle(vHandle);//windows Api上面有定义扩展方法
            return 1;//文件存在且没被占用
        }
    }
}

标签:

暂无标签

免责声明:

本站提供的资源,都来自网络,版权争议与本站无关,所有内容及软件的文章仅限用于学习和研究目的。不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负,我们不保证内容的长久可用性,通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。侵删请致信E-mail: 34585055@qq.com

同类推荐
评论列表
签到