1、 编写一个Java应用程序,文件名为Folder.java,编译后执行结果如下图所示,实现指定文件夹下目录和文件的文本形式的树状结构显示。要求:1. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;2. 输入: java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)3. 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示

解决方案 »

  1.   

    http://blog.csdn.net/lcj_up/archive/2009/08/26/4485707.aspx
    这里面有java文件相关的操作(很多实现的代码)
      

  2.   

    java的swing中有个JTree。我只能提示道这里了。
      

  3.   


    package day01;
    import java.io.*;
    public class Folder {
    private File dir;
    public Folder(){

    }
    public void showCurrentDirectory(){
    dir=new File(".");
    File fileName[]=dir.listFiles();
    for(File f:fileName){
    System.out.println(f.getName());
    if(f.isDirectory()){
    String newPath=".\\"+f.getName();
    showDesignateDirectory(newPath);
    }
    }
    }
    public void showDesignateDirectory(String path){
    dir=new File(path);
    File fileName[]=dir.listFiles();
    for(File f:fileName){
    System.out.println(f.getName());
    if(f.isDirectory()){
    String newPath=path+"\\"+f.getName();
    showDesignateDirectory(newPath);
    }
    }
    }

    public void addDirectory(String directoryName){
    String path=".//"+directoryName;
    File newDirectory =new File(path);
    newDirectory.mkdir();
    showCurrentDirectory();
    }

    public void removeDirectory(String directoryName){
    String path=".//"+directoryName;
    File newDirectory =new File(path);
    newDirectory.delete();
    showCurrentDirectory();
    }

    public static void main(String[] args){
    Folder f=new Folder();
    if(args==null){
    f.showCurrentDirectory();
    }else if(args[0].equals("add")){
    f.addDirectory(args[1]);
    }else if(args[0].equals("del")){
    f.removeDirectory(args[1]);
    }else{
    f.showDesignateDirectory(args[0]);
    }
    }
    }楼主是让用swing做吗,我写了个不是swing的
    测试结果
    求职.doc
    馈赠礼仪.doc
    新建文本文档.txt
    远景.doc
    200812291812180.xls
    唐代诗歌论文.doc
    亲缘友缘
    d开卷有益.pps
    Father to Son.pps
    生命列车.pps
      

  4.   

    import java.io.File;
    import java.io.IOException;public class TestTree { private File f = new File(""); //初始化路径
    private String path ;

    //利用构造方法设置当前路径
    public TestTree() throws IOException{
    this.path = this.f.getCanonicalPath();
    }
    //获取当前路径:
    public String getPath() {
    return this.path ;
    }

    public void setFile(File f) {
    this.f = f;
    }
    public File getFile() {
    return this.f;
    }

    public static void main(String[] args) throws IOException {
    TestTree test = new TestTree();
    //操作命令
    String fileName = "";
    //设置当前路径:
    if(args.length == 0) {
    System.out.println( "当前系统运行物理路径:" + test.getPath());
    test.setFile(new File(test.getPath()));
    test.Tree(new File(test.getPath()), 1);
    }else {
    if(args[0].equals("add")) {
    //获取新建文件名,并调用方法
    //args[1]为文件夹名字
    test.creatNewFile(args[1]);
    }else if(args[0].equals("del")) {
    //同下,方法不一样而已
    test.deleteFile(args[1]);
    }else if(args[0].contains(":")) {
    test.Tree(new File(test.getFile() + args[0]),1);
    }else {
    System.out.println("指令输入错误");
    }
    }
    }

    //在指定路径下,创建文件夹。
    public void creatNewFile(String fileName) throws IOException {
    File tempFile = new File(this.getFile() + fileName);
    if(!tempFile.exists()) {
    boolean bool = tempFile.mkdir();
    //如果文件夹创建不成功,打印错误
    if(!bool) {
    System.out.println("error");
    }
    //当前路径封装成File对象
    this.Tree(new File(this.getPath()), 1);
    }else {
    System.out.println("该文件夹已存在!");
    }
    }

    //在指定路径下,删除文件夹
    public void deleteFile(String fileName) throws IOException {
    File tempFile = new File(this.getFile() + fileName);
    if(tempFile.exists()) {
    boolean bool = tempFile.delete();
    //如果文件夹创建不成功,打印错误
    if(!bool) {
    System.out.println("error");
    }
    //当前路径封装成File对象
    this.Tree(new File(this.getPath()), 1);
    }else {
    System.out.println("该文件夹并不存在!");
    }
    }

    //以文本形式树状显示(递归)
    public static void Tree(File f,int level) {
    String str = "";
    for(int i=0; i<level; i++) {
    str += "    " ;
    } File[] childs = f.listFiles();
    for(int i=0;i<childs.length;i++) {
    System.out.println (str + childs[i].getName());
    if (childs[i].isDirectory()) {
    Tree(childs[i],++level);
    }
    }
    }
    }//程序运行步骤及结果:
    //打开cmd,找到Folder.java源文件编译成功之后,执行java命令
    //参数一、 java Folder 显示当前文件夹下的目录和文件的文本形式树状显示; 
    //参数二、 java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名) 
    //参数三、 java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示; 
    //参数四、 java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示 
    //       (del命令只能删除没有子文件的文件夹)
    //相关提示:java Folder ss 提示:指令输入错误
    //温馨提示:add、del命令执行成功不会提示,只能当del命令不能被正常执行的情况下程序将提示"error"//写了二个小时终于完成啦,也算是帮自己复习一下前后的知识吧。
    //读程序的时候先分析一下程序的整体结构,各关键地方作者已写好注释。
    //如有不理解之处或程序Bug,欢迎广大CSDN朋友提出,本人随时会来跟贴说明及更正。
      

  5.   

    更正一下,上次的语句有误:
    更正之处:打开cmd,找到Folder.java源文件编译成功之后,执行java命令
    细心的朋友会发现,上面的类名为 public class TestTree 所以大家运行前需要把该文件名存在为
    TestTree.java
    程序运行步骤及结果:
    打开cmd,找到Folder.java源文件编译成功之后,执行java命令
    参数一、java TestTree 显示当前文件夹下的目录和文件的文本形式树状显示; 
    参数二、java TestTree C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名) 
    参数三、java TestTree aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示; 
    参数四、java TestTree aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示 
           (del命令只能删除没有子文件的文件夹)
    相关提示:java TestTree ss 提示:指令输入错误
    温馨提示:add、del命令执行成功不会提示,只能当del命令不能被正常执行的情况下程序将提示"error"写了二个小时终于完成啦,也算是帮自己复习一下前后的知识吧。
    读程序的时候先分析一下程序的整体结构,各关键地方作者已写好注释。
    如有不理解之处或程序Bug,欢迎广大CSDN朋友提出,本人随时会来跟贴说明及更正。