using System.Runtime.InteropServices; namespace Falcon.SugarApi.Windows { /// /// 文件操作扩展 /// public static class FileExtend { [DllImport("kernel32.dll")] private static extern IntPtr _lopen(string lpPathName,int iReadWrite); [DllImport("kernel32.dll")] private static extern bool CloseHandle(IntPtr hObject); /// /// 判断文件是否打开,并可选是否关闭 /// /// 文件路径 /// True关闭文件,不关闭。默认不关闭 /// True文件打开,False文件没有打开 public static bool IsOpen(this string path,bool close = false) { if(!File.Exists(path)) { return false; } var handle = _lopen(path,2|0x40); if(handle==new IntPtr(-1)) { return true; } if(close) { CloseHandle(handle); } return false; } } }