使用Runtime.exec()无法正常复制Android文件

时间:2014-01-17 17:05:39

标签: java android local-storage android-sdcard

我正在尝试将文件'project.jpg'从my / sdcard复制到/ sdcard / temp /文件夹,但由于某种原因,该文件未被复制。我正在使用虚拟设备进行测试,并通过adb shell传输了文件'project.jpg'。用于复制文件的函数是

public void $copyFile()
{
    try
    {
        cpSrc = escapePath(this.cpSrc);
        cpDest = escapePath(this.cpDest);
        Log.d("$copyFile()","cpSrc = "+cpSrc);
        Log.d("$copyFile()","cpDest = "+cpDest);
        String destination = getFilename(cpDest,extractFilename(cpSrc));
        Runtime.getRuntime().exec("dd in="+cpSrc+" of="+destination);
        Log.d("$copyFile()","executed command : 'dd in="+cpSrc+" of="+destination+"'");
        displayToast("File Copied Sucessfully.");
        clearAllModes();
        return;
    }
    catch(Exception e)
    {
        displayToast("$copyFile Error : "+e);
        this.clearCopyBuffer();
        clearAllModes();
    }
}

其中escapePath()用于转义给定路径中的空格字符(如果有)。我得到了调试日志,如下所示,

cpSrc = /sdcard/project.jpg
cpDest = /sdcard/temp
executed command : 'dd in=/sdcard/project.jpg of=/sdcard/temp/project.jpg

任何人都可以在代码中指出错误, BTW建议其他方式应对文件/文件夹?当我在文件管理器上尝试时,这会很有帮助。

0 个答案:

没有答案