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

解决方案 »

  1.   

    Runtime.getRuntime().exec("... ...");
      

  2.   

    Runtime.getRuntime().exec("... ..."); 同上
      

  3.   

    public void testProcess()   
       {   
           try  
           {   
               String home="e:/process";   
            String command = "D:/Sybase/bin/isql -Uuser -Pyourpwd  -SserverName -iisql.sql";   
            File dir = new File(home);   
               
            Process p = Runtime.getRuntime().exec(command, null, dir);   
               
            StringBuffer strOutput = new StringBuffer();   
            BufferedReader in = new BufferedReader(new InputStreamReader(p.getInputStream()));   
            String strProc;   
            while((strProc = in.readLine()) != null)   
            {   
                strOutput.append(strProc+"\n");   
            }   
               
            logger.debug("output is "+strOutput.toString());   
           }   
           catch(IOException e)   
           {   
               logger.warn("IOException ", e);   
           }   
       }  
    楼主你试试行不行
      

  4.   

    package gui;import java.awt.*;
    import java.io.*;
    import java.util.*;import javax.swing.*;
    import javax.swing.tree.*;/**
     * Test
     * 
     * @author yanwei
     */
    public class Folder extends JFrame { JPanel contentPane; JPanel jPanel1 = new JPanel(); BorderLayout borderLayout1 = new BorderLayout(); JTree tree; DefaultTreeModel model; DefaultMutableTreeNode rootNode; GridBagLayout gridBagLayout1 = new GridBagLayout(); GridBagConstraints gridBagConstraints; /**
     * コンストラクタ.
     */
    public Folder() {
    try { // Close
    setDefaultCloseOperation(EXIT_ON_CLOSE); jbInit(); addFileToTree();
    } catch (Exception exception) {
    exception.printStackTrace();
    }
    } /**
     * init
     * 
     * @throws java.lang.Exception
     */
    private void jbInit() throws Exception {
    contentPane = (JPanel) getContentPane();
    contentPane.setLayout(borderLayout1);
    setSize(new Dimension(800, 800));
    setTitle("Tree"); jPanel1.setLayout(new GridBagLayout());
    jPanel1.setMaximumSize(new Dimension(800, 800));
    jPanel1.setMinimumSize(new Dimension(800, 800));
    jPanel1.setPreferredSize(new Dimension(800, 800));
    jPanel1.setBackground(Color.green); tree = new JTree();
    rootNode = new DefaultMutableTreeNode("aa");
    model = new DefaultTreeModel(rootNode);
    tree.setModel(model); JScrollPane pnlTree = new JScrollPane();
    pnlTree.setMaximumSize(new java.awt.Dimension(700, 700));
    pnlTree.setMinimumSize(new java.awt.Dimension(700, 700));
    pnlTree.setPreferredSize(new java.awt.Dimension(700, 700));
    pnlTree.getViewport().add(tree, null); gridBagConstraints = new GridBagConstraints();
    gridBagConstraints.gridx = 0;
    gridBagConstraints.gridy = 0;
    gridBagConstraints.anchor = GridBagConstraints.WEST;
    gridBagConstraints.insets = new Insets(0, 10, 5, 0);
    jPanel1.add(pnlTree, gridBagConstraints); contentPane.add(jPanel1, java.awt.BorderLayout.CENTER); } private void addFileToTree() {
    String path = "E:\\aa"; createTree(path, rootNode); model.reload();
    // すべて展開します
    TreeNode root = (TreeNode) tree.getModel().getRoot();
    expandAll(new TreePath(root), true); } /**
     * Nodeデータを設定する
     * 
     * @param path
     * @param parentNode
     */
    private void createTree(String path, DefaultMutableTreeNode parentNode) { File d = new File(path);
    File[] list = d.listFiles(); for (int i = 0; i < list.length; i++) {
    String fileName = list[i].getName();
    DefaultMutableTreeNode childNode = new DefaultMutableTreeNode(fileName);
    parentNode.add(childNode); if (!list[i].isFile()) {
    createTree(path + "\\" + fileName, childNode);
    }
    }
    } /**
     * 展開します
     * 
     * @param parent TreePath
     * @param expand 展開:true
     */
    public void expandAll(TreePath parent, boolean expand) {
    TreeNode node = (TreeNode) parent.getLastPathComponent();
    if (node.getChildCount() >= 0) {
    for (Enumeration e = node.children(); e.hasMoreElements();) {
    TreeNode n = (TreeNode) e.nextElement();
    TreePath path = parent.pathByAddingChild(n);
    expandAll(path, expand);
    }
    } if (expand) {
    tree.expandPath(parent);
    } else {
    tree.collapsePath(parent);
    }
    } /**
     * Main
     * 
     * @param args
     */
    public static void main(String[] args) {
    new Folder().setVisible(true);
    }
    }
      

  5.   

    删除文件
    File.delete() 
    创建文件夹
    File.mkdir()
      

  6.   


    * @param parent TreePath 
    * @param expand 展開:true 
    */ 
    public void expandAll(TreePath parent, boolean expand) { 
    TreeNode node = (TreeNode) parent.getLastPathComponent(); 
    if (node.getChildCount() >= 0) { 
    for (Enumeration e = node.children(); e.hasMoreElements();) { 
    TreeNode n = (TreeNode) e.nextElement(); 
    TreePath path = parent.pathByAddingChild(n); 
    expandAll(path, expand);