[英]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.