一个删除指定目录下所有文件及子目录的Java程序
程序员文章站
2022-05-15 08:46:23
...
今天在je上闲逛时,看到很多人分享的一个删除指定目录下所有文件及子目录的Java程序比较好,故copy过来存档于此,以便以后借用。
原帖地址:递归删除指定目录下所有文件及子目录
关于用Java实现删除指定目录下的所有文件的问题
1。一个删除指定目录下所有文件的程序,算法是用递归来实现的。
程序一:
/**
* 删除此路径名表示的文件或目录。
* 如果此路径名表示一个目录,则会先删除目录下的内容再将目录删除,所以该操作不是原子性的。
* 如果目录中还有目录,则会引发递归动作。
* @param filePath
* 要删除文件或目录的路径。
* @return 当且仅当成功删除文件或目录时,返回 true;否则返回 false。
*/
public static boolean deleteFile(String filePath) {
File file = new File(filePath);
return deleteFile(file);
}
private static boolean deleteFile(File file){
File[] files = file.listFiles();
for(File deleteFile : files){
if(deleteFile.isDirectory()){
//如果是文件夹,则递归删除下面的文件后再删除该文件夹
if(!deleteFile(deleteFile)){
//如果失败则返回
return false;
}
} else {
if(!deleteFile.delete()){
//如果失败则返回
return false;
}
}
}
return file.delete();
}
程序二:
public static boolean delete(File dir)
{
if (dir.isDirectory())
{
File[] listFiles = dir.listFiles();
for (int i = 0; i < listFiles.length && delete(listFiles[i]); i++)
{
}
}
return dir.delete();
}
2。调用本地操作系统的方法:
/**
* 通过命令删除文件或文件夹(会删除文件夹里所有文件) 只能在windows上使用,如果
* 在Unix或linux上,则修改相应命令
*
* @param _file
*/
public static void deleteFileByWindowsCommand(File _file) {
Runtime rt = Runtime.getRuntime();
String cmd = null;
try {
if(_file.isFile()) {
cmd = "cmd.exe /c del /q/a/f/s "+_file.getAbsolutePath();
} else {
cmd = "cmd.exe /c rd /s/q "+_file.getAbsolutePath();
}
rt.exec(cmd);
}catch(IOException e){
e.printStackTrace();
}
}
上一篇: java对文件基本操作
下一篇: c#对文件和文件夹的基本操作
推荐阅读
-
Node.JS循环删除非空文件夹及子目录下的所有文件
-
编写程序,将指定目录下所有.java文件拷贝到另一个目的中,并将扩展名改为.txt
-
JAVA删除当前目录及其子目录和该目录下的所有文件
-
autorun.inf怎么删除 PHP 删除一个目录及目录下的所有文件的函数代码
-
PHP 删除一个目录及目录下的所有文件的函数代码
-
用PHP封装的一个类,显示/删除文件目录下的所有文件及空目录,同时可以删除目录或文件名为0的目录及文件
-
php递归删除目录及多级子目录下所有文件的代码
-
python编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出相对路径
-
编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对/相对路径
-
python 学习编写一个程序,能在当前目录以及当前目录的所有子目录下查找文件名包含指定字符串的文件,并打印出绝对路径。