Переименование / перемещение файлов с помощью 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.