解决方案 »

  1.   

    C#做不了,需要写原生dllhttp://download.csdn.net/tag/Filemon%E6%BA%90%E4%BB%A3%E7%A0%81
      

  2.   

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