我在用File类创建文件夹时,出现死循环、无限嵌套创建子文件夹,且创建的文件夹无法删除。
关键代码如下:
public void copy(File f) throws IOException {
String s2, s3, s4;
File file = new File(f1);
File file2 = new File(f2);
if (file.isDirectory()) {
s2 = file.getName(); //得到当前文件名
s3 = file2.getAbsolutePath(); //获取要创建文件的绝对路径名
s4 = s3 + "/" + s2;
File ff = new File(s4);
ff.mkdirs(); //创建文件夹
f1 = ff.getAbsolutePath(); //将创建的文件夹的绝对路径赋给 f1,f2
f2 = ff.getAbsolutePath();
copy(ff); //递归
}
}
结果是创建的文件夹里又有文件夹一直无限循环创建下去,强制结束程序,删除刚创建的文件夹却弹出‘文件路径名太长无法删除文件夹’。
解决办法:
出现死循环是因为递归没有结束条件,加个结束条件就可以了;下面是删除因为“文件路径名太长而无法删除”的文件夹的代码:
import java.io.File;
/**
* 无限删除文件夹,解救无限创建的子文件夹删除不了的问题
* @author 小苗
*
*/
public class ForeverDelete {
//删除文件夹方法
private void deleteDir(File file) {
if (file.listFiles().length == 0)
file.getAbsoluteFile().delete();
}
//删除文件方法
public void deleteFile(File file) {
File[] temp = file.listFiles();
for (int i = 0; i < temp.length; i++) {
System.out.println(temp[i].getName());
if (temp[i].isDirectory()) {
if (temp[i].listFiles().length != 0)
this.deleteFile(temp[i]); //如果 文件夹里不为空 递归调用 方法
this.deleteDir(temp[i]);
} else {
temp[i].delete();
}
}
}
public static void main(String[] args) {
ForeverDelete m = new ForeverDelete();
m.deleteFile(new File("D:\\system32"));
}
}
分享到:
相关推荐
内建方法,java创建和删除文件夹、文件
java创建和删除文件夹、文件.doc
Android 无法创建File文件 ,在上传图片的时候报错,提示file文件夹未空或在手机清空缓存删除文件夹后 文件夹无法创建 使用file.mkdirs()方法 返回一直是false 提供的功法可以直接解决该问题
简单样例,Android10外部储存文件夹创建以及文件创建Demo。git: https://gitee.com/fshaoooo/android10createdir.git。不会用Git的,可以直接在CSDN下载。
android 删除文件夹及文件夹下面的所有文件
备份同步报错解决方法,无法在左侧上创建goodsync状态文件夹_gsdata_:拒绝访问,
最近电脑上不知怎么出现了无限嵌套的文件夹,使用网上的教程: 1.Windows自带命令:Robocopy /MIR CLionProj_new CLionProj 删除无效: 2.写python代码删除: import os def delete_folder(path): if os.path....
1.File(String pathname):根据一个路径得到File对象 2.File(String parent,String child):根据一个目录和一个子文件/目录得到...3.File(File parent,String child):根据一个父File对象和一个子文件/目录得到File对象
本文实例讲述了php文件夹的创建与删除方法。分享给大家供大家参考。具体如下: 1、创建文件夹 ...//创建文件夹,多层嵌套的文件夹(递归式) $file_path = “d:/fold/aaa/bbb/”; if(!file_exists($file_p
Python快捷创建文件夹和文件详解 自己做文件时发现 简单的反复操作十分浪费时间,于是想到了 使用Python,这个分享给大家,快捷高效办公。 项目目录 file11 创建文件夹 file22 创建文件 1.创建文件夹 # 批量 创建...
代码很简单,构思严谨,功能实用,还有修改文件夹属性的功能,可以显示文件夹里面的全部文件,物有所值。
经常在网上搜东西都搜不到,更有人上传点没用了,现在我解决了就把解决方法上传上吧.
文件夹图标类病毒专杀 文件夹图标类病毒专杀 文件夹图标类病毒专杀 文件夹图标类病毒专杀
要删除文件夹及其里面的所有子目录和文件,用rd命令带/s /q参数, /s参数表示删除该文件夹及其下面的子目录和文件 /q参数表示,不需要确认 范例如下: rd 123 /s /q 2 创建文件夹 例:在E:\My documents下面一...
虽然Easy File Locker 体积小巧,但使用Easy File Locker保护的文件或文件夹将使其它用户将无法打开、读取、修改、删除、移动。使用Easy File Locker隐藏的文件将完全不可见,即使用在命令行模式下同样无法查看和...
使用java代码,删除文件夹或者文件。没有使用递归,而是使用循环的方式删除文件夹。利用了java.io.File类来进行文件夹的删除
java 中有关file类的一些介绍,里面详细的介绍了file类的一些常用的方法
删除文件比较简单,但是删除文件夹就不是那么简单了,特别是里面还包含很多子文件。你需要逐条的删除。 /** * 删除文件夹所有内容 * */ public void deleteFile(File file) { if (file.exists()) { //...
该爬虫应用了创建文件夹的功能: #file setting folder_path = D:/spider_things/2016.4.6/ + file_name +/ if not os.path.exists(folder_path): os.makedirs(folder_path) 上面代码块的意思是: os.path.exists...
delphi 实现,可以配置监控文件夹,对与文件夹下的文件变更都会记录日志,包括新建、删除、修改内容都会记录日志。