Проблема со специальными именами файлов при попытке рекурсивного извлечения файлов Android в Windows PC с использованием ADB - PullRequest
0 голосов
/ 13 февраля 2019

Я хочу загрузить все файлы из папки /data/data/foo в мою pc.Я использую adb для соединения с моим телефоном.

cd /data/data/foo
ls -R
.:
    cache
    databases
    files
    lib
    shared_prefs

./cache:

./databases:
    errors.db
    errors.db-journal
    logs.db
    logs.db-journal

./files:
cache_state.info

./shared_prefs:
LANG_CODE.xml
PPP.xml
CADD
.xml

Для загрузки файлов, которые я использую:

adb pull "/data/data/foo" %USERPROFILE%/foo

А вот ответ:

pull: building file list...
skipping special file 'lib'
pull: /data/data/foo/files/cache_state.info -> C:\Users\root/foo/files/cache_state.info
pull: /data/data/foo/shared_prefs/CADD
.xml -> C:\Users\root/foo/shared_prefs/CADD
.xml
cannot create 'C:\Users\root\foo\shared_prefs\CADD
.xml': No such file or directory

И на самом деле копируется только это:

foo/files/cache_state.info
foo/shared_prefs

Что я тут не так делаю?

1 Ответ

0 голосов
/ 13 февраля 2019

Проблема:

То, что вы делаете, правильно (команда верна), но проблема заключается в характере задачи, которую вы пытаетесь достичь.

Вы пытаетесь скопировать файлы с устройства Unix (файловая система ext) на компьютер с Windows (с файловой системой NTFS).Обычно это работает нормально, но бывают случаи, когда это не так: разные файловые системы имеют разные правила относительно того, какие имена файлов допустимы, и если имя файла допустимо в источнике, но не в месте назначения, нет способа скопировать его, сохранив его имя.

Из ошибки, как я понимаю, у вас есть файл с именем CADD .xml (с переводом строки в названии), который действителен на вашем устройстве Android, но выдаст ошибку при попытке скопировать его в файловую систему Windows.(см. Какие файловые системы поддерживают переводы строк в именах файлов? ).

Возможные решения:

  • Скопируйте файлы по одному иустановите другое имя для файла, вызывающего проблемы (CADD\n.xml -> CADD.xml)
  • Получите некоторую файловую систему ext (создайте ее на вашем диске или смонтируйте с внешнего диска) и скопируйте файлыТам
  • Скопируйте файл в ext файловую систему, используемую вашей оболочкой bash в Windows (см. Как получить доступ к файлам Ubuntu Bash в Windows )
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...