永发信息网

请问在swing中 如何根据给出的一个文件夹的目录把下面的文件全部循环遍历出来 然后以树形显示,高手赐教啊

答案:3  悬赏:60  手机版
解决时间 2021-03-14 00:49
  • 提问者网友:川水往事
  • 2021-03-13 13:56
高手来帮帮忙,指教下啊!!!
最佳答案
  • 五星知识达人网友:夜风逐马
  • 2021-03-13 14:58
之前做过一个东西 用到的技术跟你需要的类似 .可以给你参考一下
我用的JTree.耐性看完 应该会对你有帮助
大致说下思路
先准备一个遍历文件夹的方法 .递归这东西,能不用 尽量别用
File file = new File("D:/");这里举例遍历D盘
LinkedList<File> dir = new ....;准备一个目录数组
ArrayList<File> fs = new.....;准备一个文件数组
dir.add(file);
for(File f : dir){
if(f.isDirectory()){//如果是数组 装进去文件夹数组
dir.add(f)
}else if(f.isFile()){//如果是标准文件 装进这个数组
fs.add(f);
}
}
大概就这样遍历..细节没过多考虑 手写没经过编译不知道有没有错 大致算法就这样
fs里面装的就是你给定文件夹里所有的标准文件
再来显示
1.首先,要求给定一个文件夹目录,显示在树上,并可以展开.既然要显示在树上,那就必须得是个TreeNode
这有句代码:
DynamicUtilTreeNode root = new DynamicUtilTreeNode(FileSystemView.getFileSystemView().getHomeDirectory(),new Object[0]);
这句代码的意思 是获取到桌面File,并把它转换成一个DynamicUtilTreeNode.
2.用你给定文件转换出来的TreeNode 构建一个TreeModel
DefaultTreeModel treeModel = new DefaultTreeModel(root)
root表示你给定文件转换出来的TreeNode.
3.这下方便了,把fs里和dir里的所有文件 和文件夹转换成TreeNode 再根据他们的路径 插入到这棵树中..用这个方法(是treemodel上的方法 所以要构建一个这个,十分方便)
一个3个参数
treeModel.insertNodeInto(这个参数填TreeNode, dutn(这个表示父节点), getTreeNodeChildCount(dutn) );//最后这个参数是插入位置,我这样写 是插入到末尾

----------------------------------------------------
大概就这样了.不过一般来说 树不显示文件只显示文件夹(参照windows的资源管理器) 显示文件的可以用个JList来做 .
希望对你有帮助把 ,我自己也算回顾了下以前写的东西...
全部回答
  • 1楼网友:行雁书
  • 2021-03-13 15:33
File对象有个方法isDirectory(),如果还是目录,继续向下递归显示,显示其所有的文件方法为 file.list() ,好好看看api,很全面的啦
  • 2楼网友:笑迎怀羞
  • 2021-03-13 15:15
File对象有个方法isDirectory(),如果还是目录,继续向下递归显示,显示其所有的文件方法为 file.list() ,好好看看api,很全面的啦 再看看别人怎么说的。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯