-1

アプリを開くたびにクラッシュする理由がわかりません。forループのコメントを外したときだけです。

ここでこのアイデアを使用して、あるディレクトリから別のディレクトリにファイルをコピーしています

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();

    }
4

1 に答える 1