Как через веб сайт можно узнать папки компьютера?

Заметил в UTorrent WEB можно выбрать папки, файлы со своего компьютера и там это стилизовано и т д, как это сделать?

66adc56f7a4b1773690926.png
  • Вопрос задан
  • 604 просмотра
Решения вопроса 2
Zettabyte
@Zettabyte
Проф. восстановление данных ▪ Вопрос? См. профиль
uTWeb получает доступ к файловой системе через приложение, работающее на соответствующем компьютере -> браузер или через uTorrent с включенным WebUI (старые версии).
Просто так подобное не реализовать.
Ответ написан
Elaryks
@Elaryks
С помощью 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); // Записываем тестовый файл в эту директорию
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы