【问题标题】:ADB PULL CommandADB PULL 命令
【发布时间】:2018-06-26 13:32:59
【问题描述】:

我正在尝试使用 adb 从 MAC PC 处理我设备中的文件。

我手机中的一个文件夹中有一个空格,所以我环顾四周并尝试使用转义符,即\,并使用下面给出的引号

import java.io.*;
public class TestModule {
public static void main(String[] args) throws IOException,InterruptedException {
String line = "null";
String cmd = "adb pull /storage/sdcard1/Android/data/files/test\\ Information/ /Users/sbc/Desktop";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
while ((line=buf.readLine())!=null) {
System.out.println(line);
}
}
}

我在终端中运行了相同的命令,我可以访问该文件,但通过 java 它给了我远程对象不存在错误。

非常感谢任何帮助

【问题讨论】:

  • 改用String cmd = "adb pull '/storage/sdcard1/Android/data/files/test Information/' /Users/cdp/Desktop";
  • 您好,谢谢您的回复,我尝试了您所说的单引号和双引号,也按照您建议的链接,使用 ProcessBuilder 并将字符串更改为字符串数组。我仍然得到相同的远程对象不存在错误
  • 也尝试将数组列表提供给 processBuilder,仍然没有成功

标签: java android adb


【解决方案1】:

我找到了解决问题的方法,在下面发布代码,

import java.io.*;
public class TestModule {

public static void main(String[] args) throws IOException,InterruptedException {

String line = "null";
String cmd = "adb pull /storage/sdcard1/Android/data/files /Users/sbc/Desktop";
Runtime run = Runtime.getRuntime();
Process pr = run.exec(cmd);
BufferedReader buf = new BufferedReader(new InputStreamReader(pr.getInputStream()));
while ((line=buf.readLine())!=null) {
System.out.println(line);
}
}
}

我没有访问带有空格的文件夹,而是访问了它的父文件夹 /storage/sdcard1/Android/data/files/test\ Information/

现在 adb 下载“父文件夹”的所有内容

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-20
    • 2012-10-11
    • 2016-08-01
    • 2021-12-20
    • 2012-05-05
    • 1970-01-01
    • 2014-02-06
    相关资源
    最近更新 更多