С помощью
File System Access API можно взаимодействовать с файловой системой. Вот статья на Хабре:
ссылка.
Простой пример, в котором выводится содержимое директории и записывается тестовый файл:
const getFolderData = async () => {
if (!('showDirectoryPicker' in window)) {
console.error('File System Access API не поддерживается');
return;
}
try {
const dirHandle = await window.showDirectoryPicker();
const contents = [];
for await (const entry of dirHandle.values()) {
if (entry.kind === 'file') {
contents.push(`Файл: ${entry.name}`);
} else if (entry.kind === 'directory') {
contents.push(`Папка: ${entry.name}`);
}
}
contents.forEach(item => console.log(item));
return dirHandle;
} catch (err) {
console.error('Непредвиденная ошибка:', err);
}
}
const writeSomeDocument = async (dirHandle) => {
try {
const newFileHandle = await dirHandle.getFileHandle("test.txt", {
create: true
});
const writable = await newFileHandle.createWritable();
await writable.write("Hello, world!");
await writable.close();
console.log('Файл создан');
} catch (err) {
console.error('Непредвиденная ошибка:', err);
}
}
const dirHandle = await getFolderData(); // Получаем сущность для работы с директорией и выводим её содержимое
writeSomeDocument(dirHandle); // Записываем тестовый файл в эту директорию