Я использую Tampermonkey на мобильном Firefox. В usercript я использую GM_download(url, name) для загрузки файла с URL. Когда он начинает загружать тот же файл в Firefox, результат этого:

Hello.txt

Hello ( 1 ) .txt

...

Hello ( 9 ) .txt

Я хочу знать, как не загружать дубликаты.

Или получить список каталогов. Если файл уже существует, не скачивайте. В bash (linux cml) вы пишете ls, в окнах вы пишете dir. Но как это было бы в usercript? Если yo напишите file:///storage/emulated/0/Download/Hello.txt в вашем браузере, он покажет все нужные вам файлы (по этому адресу находится файл Hello.txt). Но я не могу получить этот HTML или что-то еще через XMLHttpRequest

Ps: извините за мой английский

-1
Yusifx1 29 Апр 2020 в 13:41

2 ответа

Вы не можете получить доступ к файловой системе, чтобы проверить, существует ли какой-либо файл. Это было бы довольно опасно для пользовательских скриптов - представьте, что вы установили пользовательский скрипт, который это сделал. Firefox даже не позволяет плагинам получать доступ к файловой системе AFAIK, поэтому tampermonkey не может предоставить этот API.

Что вы можете сделать, это запомнить имя загруженного файла. Ваши варианты:

  • localStorage - например, установите localStorage[filename]=true, а затем проверьте это. Но если вы удалите файл на своем телефоне, это предотвратит его повторную загрузку.
  • indexedDB это лучше для сохранения данных, но проблема та же, что и для локального хранилища.
0
Tomáš Zato - Reinstate Monica 29 Апр 2020 в 14:42

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

0
Zoldszemesostoros 29 Апр 2020 в 10:53