【发布时间】:2016-09-04 01:25:05
【问题描述】:
我正在尝试使用 Android Adb Command Prompt 将应用容器内的文件夹复制到本地 Windows 文件夹。该设备运行的是 Android 5.1.1,并且未植根。
adb pull 或 cp 无法正常工作。如何复制文件夹?
以下方法不起作用:
方法 1
adb shell
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
错误:找不到设备
在 shell 内部你看不到 adb pull。见here。
方法 2
DDMS 无法访问data 文件夹。
方法 3
adb shell
run-as DroidSample.DroidSample
cp /files/MetroLog/MetroLogs/ C:/temp/test
cp: /files/MetroLog/MetroLogs/: 没有这样的文件或目录
方法 4
adb shell
run-as DroidSample.DroidSample
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs/ C:/temp/test
cp: /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs 是一个目录(未复制)。
This 也不起作用。
方法 5
adb shell
run-as DroidSample.DroidSample
chmod 777 /files/MetroLog/MetroLogs
exit
exit
adb pull /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs C:/temp/test
adb shell run-as DroidSample.DroidSample
chmod 700 /files/MetroLog/Metrologs
远程对象“/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs”不存在
所以this 也不起作用。
方法 6
adb shell
mkdir /sdcard/tmp
cp /data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs /sdcard/tmp
cp:/data/data/DroidSample.DroidSample/files/MetroLog/MetroLogs:权限被拒绝
This 也不起作用。
方法 7
唯一成功的就是这个
adb exec-out run-as DroidSample.DroidSample cat "files/MetroLog/MetroLogs/Log - 20160509.log" > C:/temp/test/test.log
但是在这里我没有得到原始文件,而且我还必须知道确切的文件名。此外,我松开换行符,我必须为每个文件执行此操作。不是我想要的。
所以我的想法已经不多了。如何访问内部存储的文件并将其复制过来?
【问题讨论】:
-
这里有一个适合我的答案stackoverflow.com/a/8650449/2449199。