zoukankan      html  css  js  c++  java
  • C#检查文件是否被占用

    第一种方法:
    
    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:	emp	emp.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("没有被占用!");
    }
    
    
    第二种方法:
    
    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没有使用
    }
    

      

  • 相关阅读:
    XAMPP配置8080端口
    Composer安装使用
    .Net商品管理(注释,百度,提问,对比,总结)
    .Net数据库操作
    VS链接数据库
    .Net中字典的使用
    一套解决方案,多个项目
    转化一下解决问题的思路,弯道超车
    灵活的运用Model类
    Razor数组数据
  • 原文地址:https://www.cnblogs.com/waw/p/3261786.html
Copyright © 2011-2022 走看看