如何用java 实现遍历显示某目录下的所有文件及目录? 20

如何用java实现遍历并显示某目录下的所有文件及目录?... 如何用java 实现遍历并显示某目录下的所有文件及目录? 展开
 我来答
yuge4725
2008-11-26 · 超过20用户采纳过TA的回答
知道答主
回答量:165
采纳率:0%
帮助的人:67.4万
展开全部
为了避免目录列举消耗时间过长,请指定一个目录来模拟,命令行参数:代表路径的字符串.
如果认可代码,请加分50,谢谢

----

import javax.swing.*;
import javax.swing.tree.*;
import java.awt.*;
import java.io.*;
final public class FileTree extends JFrame {
public FileTree(File dir) throws HeadlessException {
super("File Tree");
JTree tree;
add(new JScrollPane(tree =new JTree(buildTreeModel(dir))));
tree.setCellRenderer(new FileTreeRenderer());
setSize(400,600);
setVisible(true);
}

private TreeModel buildTreeModel(File dir){
DefaultMutableTreeNode root = new DefaultMutableTreeNode(dir);
walkthrough(dir,root);
return new DefaultTreeModel(root);
}

private static void walkthrough(File f,DefaultMutableTreeNode node){
for (File fle : f.listFiles()) {
DefaultMutableTreeNode n = new DefaultMutableTreeNode(fle);
node.add(n);
if (fle.isDirectory()){
walkthrough(fle, n);
}
}
}

private class FileTreeRenderer extends DefaultTreeCellRenderer {
public Component getTreeCellRendererComponent(JTree tree, Object value, boolean sel, boolean expanded, boolean leaf, int row, boolean hasFocus) {
JLabel cmp = (JLabel)super.getTreeCellRendererComponent(tree, value, sel, expanded, leaf, row, hasFocus);
if (value instanceof DefaultMutableTreeNode) {
DefaultMutableTreeNode n = (DefaultMutableTreeNode)value;
Object obj = n.getUserObject();
if (obj instanceof File) {
File f = (File)obj;
cmp.setText(f.getName());
cmp.setForeground(f.isDirectory()?Color.BLUE:Color.BLACK);
}
}
return cmp;
}
}

public static void main(String[] args) {
new FileTree(new File(args[0]));
}
}
pujia12345
2008-11-26 · TA获得超过3680个赞
知道大有可为答主
回答量:3456
采纳率:0%
帮助的人:2979万
展开全部
何必如此复杂

import java.io.*;
public class ListFile{
static public void main(String[] str)throws Exception{
File f=null;
BufferedReader read=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个目录:");
String path=read.readLine();
f=new File(path);
File[] list=f.listFiles();
for(int i=0;i<list.length;i++)
System.out.println(list[i]);
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2008-11-26
展开全部
//何必如此复杂,分不要给我,给我楼上的朋友
//yuge4725 简直画蛇添足!太搞笑了

import java.io.*;
public class ListFile{
static public void main(String[] str)throws Exception{
File f=null;
BufferedReader read=new BufferedReader(new InputStreamReader(System.in));
System.out.println("请输入一个目录:");
String path=read.readLine();
f=new File(path);
File[] list=f.listFiles();
for(int i=0;i<list.length;i++)
System.out.println(list[i].getAbsolutePath());//打印全路径
}
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式