簡體   English   中英

運行shell命令從Android App復制文件

[英]Running a shell command to copy files from Android App

我正在嘗試啟動應用程序,以便將應用程序備份到SD卡。 我跑了:

        Process p = Runtime.getRuntime().exec("su");
    Process c = Runtime.getRuntime().exec(
            "cp /data/app/com.ebay.mobile-1.apk"
                    + Environment.getExternalStorageDirectory()
                    + "/ebay.apk");
    Log.d("copy", "done");

當它運行時,我可以授予超級用戶然后它說已經完成但沒有文件沒有被復制。 我只是以eBay應用程序為例進行測試。

謝謝你的幫助。

修復:感謝下面的幫助,但我發現了一個完整的修復和有點不同的做事方式在這里“http://stackoverflow.com/questions/10735273/copy-folders-in-data-data-to-sdcard-viceversa? RQ = 1"

Android不支持cp命令。 為此,您必須使用cat命令( 僅限shell ),

cat source_file > dest_file

或者在您的應用程序中使用BusyBox

編輯:

你也可以使用命令,

dd if=source_file of=dest_file

這個QA幫了我很多,所以我想在各個exec的答案中添加一些內容。 而不是使用Runtime.getRuntime()。exec(String),請考慮使用Runtime.getRuntime()。exec(String [])。 這應該可以防止帶空格的文件路徑對您的文件系統造成嚴重破壞。

嘗試

Process copy = Runtime.getRuntime().exec(
new String[]{
    "dd", 
    "if=" + inputFile.getAbsolutePath(), 
    "of=" + outputFile.getAbsolutePath()
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM