这里我有文件夹(书籍),其中有 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文件夹。
在哪里更改代码?
最佳答案
public void deleteDir(File dir) {
if (dir.isDirectory()) {
String[] children = dir.list();
for (int i = 0; i < children.length; i++) {
boolean success = deleteDir(new File(dir, children[i]));
if (!success) {
return false;
}
}
}
return dir.delete(); // The directory is empty now and can be deleted.
}
然后,您可以使用
public void SaveZipFiles(File destwithouAudio) {
File[] deletion = destwithouAudio.listFiles(new FilenameFilter() {
@Override
public boolean accept(File dir, String name) {
return !name.endsWith(".zip");
}
});
for (File toDelete : deletion) {
deleteDir(toDelete);
}
}
(使用 deleting folder from java 文件夹删除)
关于java - 如何使用java仅保存zip文件并删除其他文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24013819/