解决方案 »

  1.   

    import java.io.File;
    import java.util.regex.Matcher;
    import java.util.regex.Pattern;
    import javax.swing.JOptionPane;/**
     * 1)创建目录时,用户可以输入如:aaa/bbb/ccc 这样的层次结构。
       2)删除目录时,要求把其中含有的所有子目录、文件同时删除。
       3)创建文件时,用户可以输入类似:aaa/bbb/a.txt 这样的格式
       4)删除文件时,也可以指定目录层次
     * 
     *
     */
    public class File1 {
    public void newDir() throws Exception{
    String name = JOptionPane.showInputDialog("请需要创建的文件路径");
    //如果输入格式包含文件名,则创建文件夹同时创建文件
    if(name.endsWith(".txt")){
    Pattern p = Pattern.compile(".*(?=/\\w+\\.t\\w+)");
    Matcher m = p.matcher(name);
    while(m.find()){
    String s = m.group();
    new File(s).mkdirs();
    new File(name).createNewFile();
    }
    }else{
    //如果输入aaa/bbb/ccc 这样的层次结构
    new File(name).mkdirs();
    }
    }
    public void delete(){
    String name = JOptionPane.showInputDialog("请输入文件路径");
    fun(name);
    }
    public void fun(String name){
    //循环遍历输入文件夹中所有文件
    File file = new File(name);
    File[] files = file.listFiles();
    for(File f:files){
    //请勿尝试删除功能
    // f.delete();
    System.out.println(f.getPath());
    if(f.isDirectory() && f.length() != 0){
    fun(f.getPath());
    }
    }
    }
    public static void main(String[] args) throws Exception{
    File1 f = new File1();
    f.newDir();
    f.delete();
    }
    }
      

  2.   

    Quote: 引用 1 楼 qiaoqiao7370 的回复:
    先谢过这位老师我去找了找CSDN的代码 大概这样的最好 能在DOS操作就行 还希望能够得到帮助 只要创建、删除两个功能即可;)
      

  3.   

    1) 创建目录时,用户可以输入如:aaa/bbb/ccc 这样的层次结构。
    3) 创建文件时,用户可以输入类似:aaa/bbb/a.txt 这样的格式
    4) 删除文件时,也可以指定目录层次
    上面三条查询一下File的API 3个方法3行代码就能搞定2) 删除目录时,要求把其中含有的所有子目录、文件同时删除。
    这个可以用递归方式
    参照下面import java.io.*;
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.PreparedStatement;
    import java.sql.ResultSet;
    import java.sql.SQLException;
    import java.text.ParseException;
    import java.text.SimpleDateFormat;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.Date;
    import java.util.HashSet;
    import java.util.List;
    import java.util.Set;
     
    public class del{

    static StringBuffer sb = new StringBuffer();
    static Date dd = new Date();

        public static void main(String[] args) throws SQLException, ParseException, IOException{
            tree(new File("d:\\src"));
        
        }
        //显示目录的方法
        public static void tree(File f) throws IOException{
            //判断传入对象是否为一个文件夹对象
            if(!f.isDirectory()){
                System.out.println("你输入的不是一个文件夹,请检查路径是否有误!!");
            }
            else{
                File[] t = f.listFiles();
                for(int i=0;i<t.length;i++){
                    //判断文件列表中的对象是否为文件夹对象
                    if(t[i].isDirectory()){
                     //输出文件夹名字
                     if (".svn".equals(t[i].getName())) {
                     System.out.println(t[i].getPath());
                     del(t[i].getPath());
    //                 System.out.println(t[i].delete());
                     }
                        tree(t[i]);
                    }
                    else{
                    
                    }
                }
            }
        }
        
        public static void del(String filepath) throws IOException{  
               File f = new File(filepath);//定义文件路径         
               if(f.exists() && f.isDirectory()){//判断是文件还是目录  
                   if(f.listFiles().length==0){//若目录下没有文件则直接删除  
                       f.delete();  
                   }else{//若有则把文件放进数组,并判断是否有下级目录  
                       File delFile[]=f.listFiles();  
                       int i =f.listFiles().length;  
                       for(int j=0;j<i;j++){  
                           if(delFile[j].isDirectory()){  
                                     del(delFile[j].getAbsolutePath());//递归调用del方法并取得子目录路径  
                           }  
                           delFile[j].delete();//删除文件  
                       }  
                   }  
               }      
           }  
    }