我无法弄清楚每次打开它时我的应用程序崩溃的原因。只有当我取消注释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();
}
答案 0 :(得分:0)
除了应用程序控制的子目录外,您无法读取/ data / data中的任何内容。
/data/data/*packagename*/files
是Context.getFilesDir()
返回的路径/data
是Environment.getDataDirectory()返回的路径。