java如何删除文件和目录
发布时间: 2020-06-25 11:24:59
来源:亿速云
阅读: 156
作者: Leah
本文通过一个简单易懂的例子介绍了java如何删除文件和目录。 代码非常详细,感兴趣的伙伴们可以参考,希望对大家有帮助。
delete ()方法可用于删除文件或空目录/文件夹。 如果文件被删除,则返回true;如果文件不存在,则返回false。
删除目录时,delete (方法检查目录是否为空,如果目录为空,则删除目录。 否则,delete ) )方法将无所事事地返回false。 因此,在这种情况下,必须递归删除所有文件,然后删除目录。
删除非空目录的另一种方法是使用Files.walkFileTree ()方法。 此方法允许您单独处理所有文件,并在单个文件对象上调用delete ()方法。
删除文件示例: package com.journaldev.files; import java.io.File; 公共类删除文件Java {
//*
*此类演示如何在Java中删除文件
* @param args
*/
publicstaticvoidmain (字符串[ ] args ) {
//带路径的文件名
file file=new file (tmp/tmp2/file.txt );
if(file.delete () ) )。
system.out.println (tmp/tmp2/file.txtfile deleted );
} else system.out.println (' file tmp/tmp2/file.txt doesn ' t exist ' );
//只提供文件名
文件=new file (file.txt );
if(file.delete () ) )。
system.out.println (' file.txtfiledeletedfromprojectrootdirectory ' );
} else system.out.println (' file file.txt doesn ' texistintheprojectrootdirectory ' );
//relative path
file=newfile(temp/file.txt );
if(file.delete () ) )。
system.out.println (temp/file.txtfiledeletedfromprojectrootdirectory );
} else system.out.println (' file temp/file.txt doesn ' texistintheprojectrootdirectory ' );
//删除空目录
file=newfile('temp );
if(file.delete () ) )。
system.out.println (tempdirectorydeletedfromprojectrootdirectory );
} else system.out.println (tempdirectorydoesn ' texistornotemptyintheprojectrootdirectory ' );
//尝试删除非空目录
file=new file (d :/user/maxsu/project );
if(file.delete () ) )。
system.out.println (d :/user/maxsu/projectdirectorydeletedfromprojectrootdirectory );
} else system.out.println (d :/user/maxsu/projectdirectorydoesn ' texistornotempty );
}
注意:与createNewFile ()不同,delete方法不会抛出IOException异常。
以下简单过程说明如何删除非空目录。 如果目录包含文件,则删除目录将不会成功。
目录删除示例: import java.io.File; publicclassjavadeletedirectory {
publicstaticvoidmain (字符串[ ] args ) {
filedir=new file (d :/worksp/Java/log );
if(dir.isdirectory(==false ) {
系统. out.println (nota directory.do nothing );
返回;
}
File[] listFiles=dir.listFiles (;
文件文件:列表文件(for ) {
system.out.println (deleting ' file.getname );
file.delete (;
}
//现在目录为空,可以删除
system.out.println (deleting directory.success=' dir.delete ) );
}
递归删除目录示例: import java.io.IOException;
import Java.nio.file.filevisitresult;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import Java.nio.file.simplefilevisitor;
import Java.nio.file.attribute.basicfileattributes;
publicclassjavadeletedirectoryrecursively {
publicstaticvoidmain (字符串[ ] args ) throws IOException { )。
path目录=paths.get (d :/worksp/maxsu/log );
files.walkfiletree (目录,new SimpleFileVisitor () )。
@Override
publicfilevisitresultvisitfile (pathfile,BasicFileAttributes attributes ) throws IOException {
files.delete (文件; //有效。 因为那总是文件
return FileVisitResult.CONTINUE;
}
@Override
publicfilevisitresultpostvisitdirectory (pathdir,IOException exc ) throws IOException {
files.delete(dir; //目录中的文件已被删除,因此此功能正常
return FileVisitResult.CONTINUE;
}
);
}
我们在此共享了java如何删除文件和目录。 我希望以上内容对大家有帮助。 你可以学到更多的知识。 如果你觉得文章不错,可以分享它给更多的人看。