diff --git a/Falcon.SugarApi.Windows/FileExtend.cs b/Falcon.SugarApi.Windows/FileExtend.cs new file mode 100644 index 0000000..b67047c --- /dev/null +++ b/Falcon.SugarApi.Windows/FileExtend.cs @@ -0,0 +1,36 @@ +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; + } + } +}