DotNet学习笔记

导航

判断文件是否打开

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(
"没有被占用!");
}

posted on 2008-06-13 17:43  烟丝  阅读(1229)  评论(4编辑  收藏  举报