C#如何获得文件现在状态 如题C#怎么可以获取文件的状态。1.文件有可能已经被打开。2.文件有可能在编辑当中。目的是实现,对这些正在处理当中的文件,不作任何动作。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 try { string filename ; System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileAccess.ReadWrite); fs.Close(); fs.Dispose(); } catch (Exception ex) { //如果发生异常就表示 //1.文件有可能已经被打开。 //2.文件有可能在编辑当中。 MessageBox(ex.ToString()); } 其实你的目的就是要判断一下文件是否被占用:这个是文件操作的API类using System.Runtime.InteropServices; /// <summary> /// 文件操作API /// </summary> public class WinApi { [DllImport("kernel32.dll")] public static extern IntPtr _lopen(string lpPathName, int iReadWrite); [DllImport("kernel32.dll")] public static extern bool CloseHandle(IntPtr hObject); }下面是调用类 #region 判断文件是否占用 /// <summary> /// 判断文件是否占用 /// </summary> /// <param name="file"></param> /// <returns>true被占用/false未占用</returns> public bool isOccupy(string file) { bool flag = false; IntPtr vHandle = WinApi._lopen(file, OF_READWRITE | OF_SHARE_DENY_NONE); if (vHandle == HFILE_ERROR) { flag = true; } else { flag = false; } WinApi.CloseHandle(vHandle); return flag; } #endregion C#中的 泛型 有缺点吗?是什么缺点???在Google查了一下没有缺点?? 子窗体问题!!!高分求解 原来在WebForm中使用Div+CSS可以象WinForm一样! 出租车计费的小程序 avicap32.dll 找不到入口点 请教,不知道错在哪里,关于sql语句 简单的抓包post登陆! 100分请教大侠,怎么在DLL文件中调用我的程序? 有两个非常专业性的大问题(对于程序员和高级程序员来说),请大家广泛发表意见,从中可显高手能力。 两个控件放在一个窗体上重叠,怎样分别控制的问题 过滤掉所有HTML标签。不知道有没有方法可以实现。 C#中写文件问题
{
string filename ;
System.IO.FileStream fs = new System.IO.FileStream(filename, System.IO.FileAccess.ReadWrite);
fs.Close();
fs.Dispose(); }
catch (Exception ex)
{
//如果发生异常就表示
//1.文件有可能已经被打开。
//2.文件有可能在编辑当中。
MessageBox(ex.ToString());
}
using System.Runtime.InteropServices;
/// <summary>
/// 文件操作API
/// </summary>
public class WinApi
{
[DllImport("kernel32.dll")]
public static extern IntPtr _lopen(string lpPathName, int iReadWrite); [DllImport("kernel32.dll")]
public static extern bool CloseHandle(IntPtr hObject);
}下面是调用类
#region 判断文件是否占用
/// <summary>
/// 判断文件是否占用
/// </summary>
/// <param name="file"></param>
/// <returns>true被占用/false未占用</returns>
public bool isOccupy(string file)
{
bool flag = false;
IntPtr vHandle = WinApi._lopen(file, OF_READWRITE | OF_SHARE_DENY_NONE);
if (vHandle == HFILE_ERROR)
{
flag = true;
}
else
{
flag = false;
}
WinApi.CloseHandle(vHandle);
return flag;
}
#endregion