Может ли расширение VSCode отслеживать изменения файловой системы?

#visual-studio-code #vscode-extensions #vscode-tasks

#visual-studio-code #vscode-расширения #vscode-задачи

Вопрос:

Нам нужно расширение Visual Studio Code, которое отслеживает определенную папку в файловой системе, и когда содержимое папки изменяется, это должно вызвать какое-то действие.

Может ли расширение это сделать?

Я полагаю, нам нужна задача. Однако все примеры задач, которые я нашел, имеют дело с триггерами изнутри VSCode (в основном редактируются пользователем).

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

Комментарии:

1. вы смотрели на API просмотра файлов VSC

2. FileSystemWatcher и FileSystemProvider .

3. @Mark не FileSystemWatcher только для файлов в текущем открытом решении? И FileSystemProvider , похоже, это интерфейс, который мне нужно реализовать, если я хочу свою собственную файловую систему.

4. @rioV8 единственное, что я могу найти vscode.workspace.createFileSystemWatcher(...) , но, похоже, речь идет о файлах в текущей открытой рабочей области или папке. Мне нужно следить за файловой системой за пределами рабочей области.

5. есть ли у Node модуль просмотра файлов?

Ответ №1:

Начиная с версии VSCode 1.64.2 (январь 2022), vscode.workspace.createFileSystemWatcher может отслеживать файлы за пределами текущей рабочей области VSCode!

См. Выпуск 140693 «Тест: просмотр файлов вне рабочей области из расширений».

спасибо команде Windows за внедрение лучшего средства просмотра файлов OS во всех операционных системах.

ReadDirectoryChangesW является потрясающим и используется библиотекой File Watcher, которую мы используем.