删除文件夹的java类
2008-02-23 09:43:12来源:互联网 阅读 ()
* @author www.nwu.edu.cn MiniRice
* @author darkrice@gmail.com
* @version 1.2
*
*/
package cn.edu.nwu.io;
import Java.util.*;
public class File extends java.io.File {
File(java.io.File file,String str){
super(file,str);
}
File(String str1,String str2){
super(str1,str2);
}
File(String str){
super(str);
}
File(java.net.URI uri){
super(uri);
}
public static void deleteDirs(java.io.File dir)throws Exception{
m_root=dir;
m_dirs= new ArrayList();
if(!m_root.isDirectory()){
throw new Exception("Exception:\"" m_root.toString() "\" is not a director");
}
else{
for(int i=0;i<m_dirs.size();i ){
System.out.println(((File)m_dirs.get(i)).toString());
}
//delete all director
try{
m_dirs.add(m_root);
myDelete();
}
catch(Exception e){
e.printStackTrace();
}
}
}
/**
*
* @param dirPath String a director file path;
* @throws IOException if dirPath is not a director file path
*/
public static void deleteDirs(String dirPath)throws Exception{
m_root=new java.io.File(dirPath);
deleteDirs(m_root);
}
public static void deleteSubDirs(String dirPath)throws Exception{
m_root=new java.io.File(dirPath);
deleteSubDirs(m_root);
}
public static void deleteSubDirs(java.io.File dir)throws Exception{
m_root=dir;
m_dirs= new ArrayList();
//deleteDirs(m_root);
if(!m_root.isDirectory()){
throw new Exception("Exception:\"" m_root.toString() "\" is not a director");
}
else{
for(int i=0;i<m_dirs.size();i ){
System.out.println(((File)m_dirs.get(i)).toString());
}
try{
myDelete();
}
catch(Exception e){
e.printStackTrace();
}
}
}
/*
* visit all a director and save them in a list
*/
private static void visitAll(java.io.File tempRoot){
//m_dirs.add(tempRoot);
//System.out.println("函数开始处:" m_dirs.size());
java.io.File[] dirs=tempRoot.listFiles();
if(dirs!=null){
List dirsList=Arrays.asList(dirs);
//while(dirsList!=null){
if(dirsList==null){
try{
tempRoot.delete();
}
catch(Exception e){
e.printStackTrace();
}
}
else{
m_dirs.addAll(dirsList);
//System.out.println(m_dirs.size());
/*
for(int i=0;i<dirs.length;i ){//print dirs
System.out.println("NO." counter ":" dirs[i].toString());
}
*/
//System.out.println(m_dirs.size());
for(int i=0;i<dirsList.size();i ){
tempRoot=(java.io.File)dirsList.get(i);
visitAll(tempRoot);
/*
dirs=tempRoot.listFiles();
List dirsList= Arrays.asList(dirs);
*/
//System.out.println(tempRoot.toString());
}
}
//return true;
//}
}
}
/*
* do delete
*/
private static void myDelete()throws Exception{
//m_dirs.add(m_root);
visitAll(m_root);
if(m_dirs!=null){
//System.out.println("删除前:" m_dirs.size());
//System.out.println(m_dirs.size());
for(int i=m_dirs.size()-1;i>=0;i--){
java.io.File f= (java.io.File)m_dirs.remove(i);
//File f= (File)m_dirs.get(i);
//System.out.println(f.toString());
String fileName=f.toString();
if(!f.delete()){
throw new Exception("Exception: delete file " fileName " false!");
//System.out.println("删除文件/文件夹" fileName "失败!");
}
}
}
else{
throw new Exception("Exception: read file list of " m_root.toString() "false!");
//System.out.println("ArrayList==null");
}
}
/*
* root director
*/
private static java.io.File m_root;
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:第一个Servlet
- 闲来无事,写了个删除文件夹的java类 2008-02-23
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash