Переименование / перемещение файлов с помощью API доступа к файловой системе (javascript)

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

Проблема в том, что от создания файла до фактической записи содержимого в файл с помощью метода close() требуется около 250 мс.

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

Я попытался записать файл во временное место и переместить его после закрытия, но, похоже, это невозможно с этим API. То же самое и с переименованием файла.

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

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

Есть ли другой способ избежать этой проблемы?

Спасибо

1 ответ

Теперь есть способ переименовывать и перемещать файлы (в настоящее время он реализован в Chrome 96 за флагом экспериментальных функций веб-платформы):

      // Get references to a file and a directory.
const [file] = await showOpenFilePicker();
const directory = await showDirectoryPicker();

// Rename the file.
await file.rename('new_name');
// Move the file to a new directory.
await file.move(directory);
// Move the file to a new directory and rename it.
await file.move(directory, 'newer_name');

Вы можете следить за работой спецификации, подписавшись на этот PR.

Другие вопросы по тегам