C#中判断文件是否被其它进程打开 1,3 目測有用如果文件使用中,會跳入catch 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 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("没有被占用!");} 谢谢两位,其实三种方法都是对的,只不过我上午检测的时候用的是Txt文件——当某文件被记事本打开后,程序根本不会锁定它,你可以将被打开的文件|Rename甚至Delete it。刚才俺用Word文件试了下,发现我列举的三种方法都管用,速度最快的是第一种办法,也就是楼上所说的。既是误解一场,这些分咱哥仨平分了吧。 确实是没有用,我就是要用txt文件,那怎么处理呢? 该问题何解??? 数据库难题 关于C#中打开文件对话框的问题。 求教 PPC2003连接SQL2000出现“未处理SqlException”错误 【VS2010】求教 探讨一个问题 Newtonsoft.Json反序列化,自定义类型获取到null 问:在.aspx文件中如何调用.cs文件中把某个方法?(高分请教) 强烈建议开辟 C# 专栏!请对 C# 感兴趣者投一票! c# 彩信(mm1)发送中实现进度条的出现的问题~求分析求解决 做医疗软件的都帮忙看下。。
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("没有被占用!");
}
刚才俺用Word文件试了下,发现我列举的三种方法都管用,速度最快的是第一种办法,也就是楼上所说的。
既是误解一场,这些分咱哥仨平分了吧。