码迷,mamicode.com
首页 > Windows程序 > 详细

Windows获取文件状态

时间:2015-01-22 17:43:47      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:

在操作一个文件前想要获取当前文件的状态,避免正在打开的文件又再次的打开,代码参考网络以前已经写好,分享于己作为记录,也可作为他人的参考。

 

    #region Get file status
    [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);
    
    private static int getFileStatus(string fileFullName)
    {
      if(!File.Exists(fileFullName))
      {
        return -1;//file not exists
      }
      IntPtr handle=_lopen(fileFullName,OF_READWRITE|OF_SHARE_DENY_NONE);
      if(handle==HFILE_ERROR)
      {
        return 1;//aready open
      }
      CloseHandle(handle);
      return 0;//not open
    }
    #endregion

 

需要引用命名空间:

using System.Runtime.InteropServices;

 

Windows获取文件状态

标签:

原文地址:http://www.cnblogs.com/jiangxiaoqiang/p/4241873.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!