for循环导致Android应用程序崩溃

时间:2013-10-10 00:09:41

标签: android

我无法弄清楚每次打开它时我的应用程序崩溃的原因。只有当我取消注释for循环时才会这样。

我在这里使用这个想法将文件从一个目录复制到另一个目录

How to programmatically move, copy and delete files and directories on SD?

然而这部分(我试过这种方式和上面的链接一样,使用子字符串等)

for (File file : files)
{
    CopyFile(file, target);
}

一直导致我的应用程序崩溃。我试着评论这个部分并且应用程序运行正常(它不会复制任何东西,但因为它没有访问文件)

有什么想法吗?

    private void CopyFile(File source, File target) throws IOException {



    if (source.isDirectory()){

        File[] files = source.listFiles();
        for (File file : files)
        {
            CopyFile(file, target);
        }

    } else {
        InputStream in = new FileInputStream(source);
        OutputStream out = new FileOutputStream(Environment.getExternalStorageDirectory());

        byte[] buf = new byte[1024];
        int len;
        while ((len = in.read(buf)) > 0){
            out.write(buf, 0, len);
        }
        in.close();
        out.close();

    }

1 个答案:

答案 0 :(得分:0)

除了应用程序控制的子目录外,您无法读取/ data / data中的任何内容。

/data/data/*packagename*/files

是Context.getFilesDir()

返回的路径
/data

是Environment.getDataDirectory()返回的路径。