我的程序与别人的程序(我无法控制)之间,如何同时读写文件而不冲突? 别人的程序对文件进行定时写操作,大概5秒写一次,写完会关闭文件。我的程序对该文件进行读操作,读完也会关闭文件。 我想问:在我打开文件前,如何判断别人程序正在对文件进行写操作,从而推迟打开以避免冲突??难道不停尝试打开该文件直到成功为止?? 请赐教! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Timer控件,每隔一段时间(比如0.5秒)在后台轮询一次文件的状态,同时还可以做别的工作.如果文件打开对程序继续运行是必要的条件,那就只有等啰,不过应该不会等多久的.写文件只是一瞬间的事. 好像也只有 try and try 用文件监视器. private static void FileWatch() { FileSystemWatcher watcher = new FileSystemWatcher(); watcher.Path = System.Environment.CurrentDirectory; //路径 watcher.NotifyFilter = NotifyFilters.LastWrite; //监视方式,这里选择的是最后一次写入 watcher.Filter = "要监视的文件.txt"; watcher.Changed += new FileSystemEventHandler(watcher_Changed); //触发事件 watcher.EnableRaisingEvents = true; } static void watcher_Changed(object sender, FileSystemEventArgs e) { //写入读操作 } 改变label.Height,怎样使得向上拉大(height)? C# 连接 Oracle 的奇怪问题 这条SQL语句错在哪???(急) 如何根据2个datatable做关联查询,将结果保存到另一个datatable 将指定的文件夹变为虚拟的光盘驱动器??? 产生随机的含不相同字母或数字的4位字符串? DataGrid与IList 准备购买代码: 因为手上有个winform的项目,之前没做过winform的,所以想购买数据编辑及树形控件的代码 c#中如何用webBrowser1获取table中想要的链接 非法路径 path.combin 为什么说找不到咱径 vs2005中如何生成注释web页
如果文件打开对程序继续运行是必要的条件,那就只有等啰,不过应该不会等多久的.写文件只是一瞬间的事.
{
FileSystemWatcher watcher = new FileSystemWatcher();
watcher.Path = System.Environment.CurrentDirectory; //路径
watcher.NotifyFilter = NotifyFilters.LastWrite; //监视方式,这里选择的是最后一次写入
watcher.Filter = "要监视的文件.txt";
watcher.Changed += new FileSystemEventHandler(watcher_Changed); //触发事件
watcher.EnableRaisingEvents = true;
} static void watcher_Changed(object sender, FileSystemEventArgs e)
{
//写入读操作 }