[英]How to save only zip files and remove other folders using java?
Here i have Folder(Books)in that i have 3 sub folders named: sub1, sub2, sub3 and sub1 have 2 files , sub2 have 3 files , sub3 have 4 files . 在这里我有Folder(Books),其中有3个子文件夹,分别为: sub1,sub2,sub3和sub1有2个文件 , sub2有3个文件 , sub3有4个文件 。 And sub1.zip , sub2.zip and sub3.zip .
以及sub1.zip , sub2.zip和sub3.zip 。 I want to keep only zip files and delete sub1, sub2, sub3 folders of Books.
我只想保留zip文件,并删除Book的sub1,sub2,sub3文件夹 。 With my code I'm able to delete all inside files of sub1 folder, sub2, sub3 finally all folders becoming empty, then how can I delete sub1,sub2 and sub3 folders .
通过我的代码,我能够删除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 method code is: 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());
}
}
After deleting all files from sub1,sub2,sub3 foldersIi need to delete all sub1,sub2,sub3 folders. 从sub1,sub2,sub3文件夹删除所有文件后, ii需要删除所有sub1,sub2,sub3文件夹。
Where to change the code? 在哪里更改代码?
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.
}
then, you could be using 然后,您可能正在使用
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);
}
}
(using deleting folder from java folder deletion) (使用从Java文件夹删除中删除文件夹)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.