這就是我想要做的事:在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