别人的程序对文件进行定时写操作,大概5秒写一次,写完会关闭文件。我的程序对该文件进行读操作,读完也会关闭文件。
  我想问:在我打开文件前,如何判断别人程序正在对文件进行写操作,从而推迟打开以避免冲突??难道不停尝试打开该文件直到成功为止??
  请赐教!

解决方案 »

  1.   

    用Timer控件,每隔一段时间(比如0.5秒)在后台轮询一次文件的状态,同时还可以做别的工作.
    如果文件打开对程序继续运行是必要的条件,那就只有等啰,不过应该不会等多久的.写文件只是一瞬间的事.
      

  2.   

    好像也只有 try and try
      

  3.   

    用文件监视器.        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)
            {
                //写入读操作        }