zoukankan      html  css  js  c++  java
  • C# 判断文件有没占用

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Runtime.InteropServices;
    namespace AdminTools
    {
        public static class FileTools
        {
            [DllImport("kernel32.dll")]
            private static extern IntPtr _lopen(string lpPathName, int iReadWrite);
            [DllImport("kernel32.dll")]
            private static extern bool CloseHandle(IntPtr hObject);
            private const int OF_READWRITE = 2;
            private const int OF_SHARE_DENY_NONE = 0x40;
            private static readonly IntPtr HFILE_ERROR = new IntPtr(-1);
            /// <summary>   
            /// 检查文件是否已经打开   
            /// </summary>   
            /// <param name="strfilepath">要检查的文件路径</param>          
            /// <returns>true文件已经打开,false文件可用未打开</returns>   
            public static bool FileUsing(string strfilepath)
            {
                string vFileName = strfilepath;
                // 先检查文件是否存在,如果不存在那就不检查了   
                if (!System.IO.File.Exists(vFileName))
                {
                    return true;
                }
                // 打开指定文件看看情况   
                IntPtr vHandle = _lopen(vFileName, OF_READWRITE | OF_SHARE_DENY_NONE);
                if (vHandle == HFILE_ERROR)
                { // 文件已经被打开                   
                    return true;
                }
                CloseHandle(vHandle);
                // 说明文件没被打开,并且可用  
                return false;
            }
        }
    }
  • 相关阅读:
    K8S 本地 配置 Local PV 实践
    Filebeat 收集K8S 日志,生产环境实践
    K8S 上部署 Redis-cluster 三主三从 集群
    Kubernetes 用户流量接入方案
    给Nginx配置日志格式和调整日期格式
    唇亡齿寒,运维与安全
    Nginx记录用户请求Header到access log
    Kubernetes中利用Kubectl set 让Deployment更新镜像
    故障管理:故障定级和定责
    使用 Elastic 技术栈构建 Kubernetes全栈监控
  • 原文地址:https://www.cnblogs.com/zhangwen/p/3582707.html
Copyright © 2011-2022 走看看