这就是我想要做的事:在c#中有一种方法可以知道用户何时用应用程序完成文件编辑?
- 从服务器
- 开放使用的System.Diagnostics.Process相应的应用程序文件下载文件(TXT,DOC,XLS,等等)。开始(文件路径)
- 使用FileSystemWatcher监视文件更改。
- 每次文件被更改,将文件上传到服务器
- 继续监视,直到用户已经完成编辑文件
- 删除文件
- 退出应用程序的本地副本
我被卡在第5步。如何知道用户是否已完成文件的工作?
我不能依赖被锁定的文件(记事本不会锁定txt文件)。
我不能依赖已退出或不存在的进程(例如Notepad ++ for txt文件:该文件可以在选项卡中打开。关闭选项卡后,您已完成编辑文件,但进程为仍在运行)
有关如何在C#中执行此操作的任何想法/要点?
我明白你的观点。我想该System.Diagnostics.Process.Start()是默认的编辑器,对不对?在那种情况下,这很困难。我们解决了这个问题,启动了我们自己的编辑器(或者如果您愿意的话,总是记事本),然后等到流程结束,但这可能不是您的解决方案。 – 2011-01-05 11:55:27
关于notepad ++:git用户通过使用'-multiInst -nosession -notabbar'开关解决了这个问题 - 这种方式使notepad ++被迫创建一个独立的进程来处理被监控的文件。 – rsenna 2011-01-05 12:15:11
@Kiquenet不是。我已经为Office类型文件(doc,xls,ppt)进行了锁监视,这是我的用户使用最广泛的文件。 TXT文件只有一小部分文件,最终不是问题。 – 2013-03-04 14:38:46