正常目录里面里面应该有文件的,但是创建出来目录里面是空的,也没报异常,我检查了半天也没发现问题,麻烦帮我看一看
3条回答 默认 最新
- 小秋Kaito 2022-08-05 14:44关注
捋一下你的代码逻辑:原本的目的应该是递归地把源目录及源目录下的所有子目录和文件(或源文件)复制到目标目录下。
当前你main函数里src和dest都是目录,
走 : if (srcFile.isFile()) 是目录,不是文件,为false不执行,跳转到
File[] files = srcFile.listFiles();
for (File f : files){
if (f.isDirectory())
这时会有两种情况,
如果你源目录下全是文件,那么 if (f.isDirectory()) 全部为false,里面的语句一次都没执行,最终结果是无事发生。
如果你源目录下存在子目录,会继续往下走
String absolutePath = f.getAbsolutePath();
String path = (desFile.getAbsolutePath().endsWith("\") ? desFile.getAbsolutePath() : desFile.getAbsolutePath()+"\") + absolutePath.substring(3);
File f1 = new File(path);
if (!f1.exists()){
f1.mkdirs();
}
copy(f, desFile);
会创建该目录,然后递归往下执行..最终结果是会把所有目录创建,但是文件还是不会复制过去。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报