2015-07-14 2 views
3

Я разрабатываю приложение Windows для дополнения нашего веб-приложения, это небольшая система управления документами, такая как dropbox, мне приходится автоматически синхронизировать файлы с ее закрытием, например. если в моем приложении открывается файл .dwg (AUTOCAD), событие должно запускаться по закрытию этого конкретного файла, возможно ли это с классом Filesystemwatcher? Проблема в том, что в AUTOCAD файл открывается как вкладки, я знаю, что мы можем сделать это в приложениях MS Office с библиотекой interop. Как мы можем сделать то же самое для приложений, таких как AUTOCAD и Photoshop?Мониторинг закрытия определенного файла C#

ответ

3

Попробуйте использовать FileSystemWatcher's Changed событие. Нечто подобное:

FileSystemWatcher watcher = new FileSystemWatcher(); 
    watcher.NotifyFilter = NotifyFilters.LastAccess | NotifyFilters.LastWrite 
     | NotifyFilters.FileName; 
    // Only watch AutoCAD files. 
    watcher.Filter = "*.dwg"; 
    watcher.Changed += new FileSystemEventHandler(OnChanged); 
+0

, но можем ли мы отслеживать момент, когда файл закрыт? – midhun

+0

Возможно, AutoCAD имеет определенное поведение при закрытии файла, например удаление связанных файлов с нуля из той же папки, что и MS Office? Если это не так, я не могу придумать, как это сделать, кроме разработки специального плагина AutoCAD. – cyberj0g

0

Внутри AutoCAD вы можете также разработать плагин (так же, как для MS Office), используя его .NET API.

Существует событие DocumentCollection.DocumentDestroyed, который срабатывает при закрытии документа (экономия или нет): http://docs.autodesk.com/ACD/2010/ENU/AutoCAD%20.NET%20Developer «s% 20начинающих/index.html URL = WS1a9193826455f5ff2566ffd511ff6f8c7ca-4875.htm

Или вы можете использовать событие Database.SaveComplete

В любом случае для этого потребуется приложение, работающее с AutoCAD, если вы отслеживаете файлы (FileSystemWatcher), должно быть проще.

0

Для AutoCAD используйте FileSystemWatcher, чтобы посмотреть, как создавался и удалялся .dwl-файл. В этом файле есть метаданные о том, кто открыл файл и когда. Он удаляется, когда файл закрыт и блокировка освобождается. Более поздние версии также имеют файл .dwl2. Все, что нужно посмотреть - это может остаться, если AutoCAD выйдет из строя.

Я не помню, если он создан, когда файл открыт только для чтения, но в любом случае нет необходимости его синхронизировать.

Смежные вопросы