アプリを開くたびにクラッシュする理由がわかりません。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();
}