ミ^ō^ミ  如何获得当前系统根目录名, 作为 JTree的根节点名, 实现本系统目录遍历 (有源代码)这是个  JTree文件查看器  查看指定盘下的目录结构. 
通过 File root = new File("E:/"); 来指定盘  (56行)
我想用当前系统根目录名来替换, 已达到本系统目录遍历
可不知道怎么换才行, 盼哪位大侠能帮小弟一下, 多谢了
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.awt.*;
import java.awt.event.*;
import java.io.File;
import java.util.EventObject;public class Test extends JFrame {
public Test() {
final JTree tree = new JTree(createTreeModel());
JScrollPane scrollPane = new JScrollPane(tree); getContentPane().add(scrollPane, BorderLayout.CENTER);
getContentPane().add(GJApp.getStatusArea(), 
 BorderLayout.SOUTH); tree.addTreeExpansionListener(new TreeExpansionListener(){
public void treeCollapsed(TreeExpansionEvent e) {
}
public void treeExpanded(TreeExpansionEvent e) {
UpdateStatus updateThread;
TreePath path = e.getPath();
FileNode node = (FileNode)
   path.getLastPathComponent(); if( ! node.isExplored()) {
DefaultTreeModel model = (DefaultTreeModel)tree.getModel();
GJApp.updateStatus("exploring ..."); UpdateStatus us = new UpdateStatus();
us.start(); node.explore();
model.nodeStructureChanged(node);
}
}
class UpdateStatus extends Thread {
public void run() {
try { Thread.currentThread().sleep(450); }
catch(InterruptedException e) { } SwingUtilities.invokeLater(new Runnable() {
public void run() {
GJApp.updateStatus(" ");
}
});
}
}
});
}



private DefaultTreeModel createTreeModel() {
File root = new File("E:/");  // 应该只要改这句就成
FileNode rootNode = new FileNode(root); rootNode.explore();
return new DefaultTreeModel(rootNode);
}
 
public static void main(String args[]) {
GJApp.launch(new Test(),"JTree File Explorer",
 300,300,450,400);
}
}
class FileNode extends DefaultMutableTreeNode {
private boolean explored = false; public FileNode(File file)  { 
setUserObject(file); 
}
public boolean getAllowsChildren() { return isDirectory(); }
public boolean isLeaf()  { return !isDirectory(); }
public File getFile() { return (File)getUserObject(); } public boolean isExplored() { return explored; } public boolean isDirectory() {
File file = getFile();
return file.isDirectory();
}
public String toString() {
File file = (File)getUserObject();
String filename = file.toString();
int index = filename.lastIndexOf(File.separator); return (index != -1 && index != filename.length()-1) ? 
filename.substring(index+1) : 
filename;
}
public void explore() {
if(!isDirectory())
return; if(!isExplored()) {
File file = getFile();
File[] children = file.listFiles(); for(int i=0; i < children.length; ++i) 
add(new FileNode(children[i])); explored = true;
}
}
}
class GJApp extends WindowAdapter {
static private JPanel statusArea = new JPanel();
static private JLabel status = new JLabel(" "); public static void launch(final JFrame f, String title,
  final int x, final int y, 
  final int w, int h) {
f.setTitle(title);
f.setBounds(x,y,w,h);
f.setVisible(true); statusArea.setBorder(BorderFactory.createEtchedBorder());
statusArea.setLayout(new FlowLayout(FlowLayout.LEFT,0,0));
statusArea.add(status);
status.setHorizontalAlignment(JLabel.LEFT); f.setDefaultCloseOperation(
WindowConstants.DISPOSE_ON_CLOSE); f.addWindowListener(new WindowAdapter() {
public void windowClosed(WindowEvent e) {
System.exit(0);
}
});
}
static public JPanel getStatusArea() {
return statusArea;
}
static public void updateStatus(String s) {
status.setText(s);
}
}

解决方案 »

  1.   

    给你一个我做的文件遍历的例子把,希望对你有帮助
    import java.io.*;
    public class Bianli {  public Bianli() {
      }
      public static  void getDir(String strPath)
      {
        try{
          File f = new File(strPath);
          if (f.isDirectory()) {
            File[] fList=f.listFiles();
            for(int j=0;j<fList.length;j++)
            {
              if(fList[j].isDirectory())
              {
                   getDir(fList[j].getAbsolutePath());
             //      System.out.println(fList[j].getName());
              }
              else
              {
                System.out.println(fList[j].getAbsolutePath());
              }
            }
            }
        }
        catch(Exception e)
        {
          e.printStackTrace();
        }
      }
      public static void main(String args[])
      {
        getDir("e:/");  }
    }
      

  2.   

    我要用Java实现资源管理器, 不是输出.但您的好意我先谢了
      

  3.   

    http://61.186.252.131/Expert/topic/1961/1961041.xml?temp=.59956