您的位置:首页 > 编程语言 > Java开发

Java--文件操作,删除文件及文件夹

2013-08-02 23:55 459 查看
1.删除文件夹下的所有文件,所有文件夹,及删除本身

 

public static boolean deleteFolders(String filePath){
boolean isDeleteSuccess = false;
LinkedList<String> folderList = new LinkedList<String>();
folderList.add(filePath);

while(folderList.size() > 0){
File file1 = new File(folderList.poll());
File[] files1 = file1.listFiles();
ArrayList<File> fileList = new ArrayList<File>();
for(int i = 0; i < fileList.size(); i++){
if(files1[i].isDirectory()){
folderList.add(files1[i].getPath());
}else{
fileList.add(files1[i]);
}
}

//删除文件
for(File file : fileList){
file.delete();
}
}

//删除文件夹
folderList = new LinkedList<String>();
folderList.add(filePath);
while(folderList.size() > 0){
File file2 = new File(folderList.getLast());
if(file2.delete()){
folderList.removeLast();
}else{
File[] files2 = file2.listFiles();
for(int i = 0; i < files2.length; i++){
folderList.add(files2[i].getPath());
}
}
}
if(folderList.size() == 0) isDeleteSuccess = true;
return isDeleteSuccess;
}


 

 

2.删除文件夹下的所有文件夹

 

public static boolean deleteUnderAllFolder(String filePath){
boolean isDeleteSuccess = false;
LinkedList<String> folderList = null;
File superFile = new File(filePath);
File[] files1 = superFile.listFiles();
for(int i = 0; i < files1.length; i++){
if(files1[i].isDirectory()){
if(!files1[i].delete()){
//取得所有文件的路径
folderList = new LinkedList<String>();
folderList.add(files1[i].getPath());
while(folderList.size() > 0){
File file = new File(folderList.poll());
File[] files2 = file.listFiles();
ArrayList<File> fileList = new ArrayList<File>();
for(int j = 0; j < files2.length; j++){
if(files2[j].isDirectory()){
folderList.add(files2[j].getPath());
}else{
fileList.add(files2[j]);
}
}
//删除所有文件
for(File f : fileList){
f.delete();
}
}

//删除所有文件夹
folderList = new LinkedList<String>();
folderList.add(files1[i].getPath());
while(folderList.size() > 0){
File file = new File(folderList.getLast());
if(file.delete()){
folderList.removeLast();
}else{
File[] files = file.listFiles();
for(int a = 0; a < files.length; a++){
folderList.add(files[a].getPath());
}
}
}
}
}
}
if(folderList != null && folderList.size() == 0) isDeleteSuccess = true;
return isDeleteSuccess;
}


 

3.清空文件夹

 

public static boolean emptyFolder(String filePath){
File delifilefolder = new File(filePath);
if(delifilefolder.exists() && !delifilefolder.delete()){
LinkedList<String> folderList = new LinkedList<String>();
folderList.add(filePath);
while(folderList.size() > 0){
File file1 = new File(folderList.poll());
File[] files1 = file1.listFiles();
ArrayList<File> fileList = new ArrayList<File>();
for(int i = 0; i < fileList.size(); i++){
if(files1[i].isDirectory()){
folderList.add(files1[i].getPath());
}else{
fileList.add(files1[i]);
}
}

//删除文件
for(File file : fileList){
file.delete();
}
}

//删除文件夹
folderList = new LinkedList<String>();
folderList.add(filePath);
while(folderList.size() > 0){
File file2 = new File(folderList.getLast());
if(file2.delete()){
folderList.removeLast();
}else{
File[] files2 = file2.listFiles();
for(int i = 0; i < files2.length; i++){
folderList.add(files2[i].getPath());
}
}
}
}
return delifilefolder.mkdir();
}


 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息