编写一个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. 输入: java Folder,显示当前文件夹下的目录和文件的文本形式树状显示;
2. 输入: java Folder C:\test>,显示C:\test文件夹下的目录和文件的文本形式树状显示;(C:\test可以为任意文件夹路径名)
3. 输入: java Folder add aa,在当前文件夹下面添加一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示;
4. 输入: java Folder del aa,在当前文件夹下面删除一个子目录(子目录名为:aa),同时显示当前文件夹下的最新目录和文件的文本形式树状显示
上面的程序该如何实现啊,请大家指点指点
{
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);
}
}
楼主你试试行不行
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);
}
}
File.delete()
创建文件夹
File.mkdir()
* @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);
}