【发布时间】:2014-06-03 11:17:57
【问题描述】:
这里我有文件夹(书籍),我有 3 个子文件夹,名为:sub1、sub2、sub3 和 sub1 有 2 个文件,sub2 有 3 个文件,sub3有4个文件。还有 sub1.zip、sub2.zip 和 sub3.zip。我想只保留 zip 文件并删除 Books 的 sub1、sub2、sub3 文件夹。使用我的代码,我可以删除 sub1 文件夹、sub2、sub3 的所有内部文件,最后所有文件夹都变空,然后 如何删除 sub1、sub2 和 sub3 文件夹。
public void SaveZipFiles(File destwithouAudio) throws IOException {
File[] listOfFiles = destwithouAudio.listFiles();
for (File listOfFile : listOfFiles) {
if (listOfFile.getName().endsWith(".zip")) {
} else {
File FolderInside = new File(listOfFile.getAbsolutePath());
File[] listOfFilesInside = FolderInside.listFiles();
for (File listOfFilesInside1 : listOfFilesInside) {
File deleteFolder = new File(listOfFilesInside1.getAbsolutePath());
//System.out.println(""+listOfFilesInside[j]);
RecursiveDelete(deleteFolder);
}
}
}
}
RecursiveDelete 方法代码为:
public static void RecursiveDelete(File file) throws IOException {
if (file.isDirectory()) {
if (file.list().length == 0) {
file.delete();
System.out.println("Directory is deleted : " + file.getAbsolutePath());
} else {
String files[] = file.list();
for (String temp : files) {
File fileDelete = new File(file, temp);
RecursiveDelete(fileDelete);
}
if (file.list().length == 0) {
file.delete();
System.out.println("Directory is deleted : " + file.getAbsolutePath());
}
}
} else {
file.delete();
System.out.println("File is deleted : " + file.getAbsolutePath());
}
}
从 sub1,sub2,sub3 文件夹中删除所有文件后,我需要删除所有 sub1,sub2,sub3 文件夹。
在哪里更改代码?
【问题讨论】:
-
你不使用 Java 7 吗?
-
您的代码工作正常,它也在删除空目录
-
@Sanjeev,文件正在 sub1,sub2 内删除。成为 sub1,sub2 文件夹后清空剩余的文件夹。不删除 sub1,sub2。
-
我在我的 Windows 机器上运行了你的代码,它运行良好。您在使用其他操作系统吗?
标签: java file directory delete-file