生成指定文件目录下的文件树
来源:互联网 发布:学mysql还是sql server 编辑:程序博客网 时间:2024/05/16 17:32
用FileSystemView fileSystemView = FileSystemView.getFileSystemView()初始化的树默认以desktop为根目录,但是如果不使用FileSystemView来初始化,自定义的FileNode将不能用实际文件来定义,即不能与文件联系起来,可以采用listFile(),和FileSystemView相结合的方法,同时在FiletTreeModel中 自定义FileNode的isLeaf()函数来实现
class FileTreeModel extends DefaultTreeModel {
public FileTreeModel(TreeNode root) {
super(root);
FileSystemView fileSystemView = FileSystemView.getFileSystemView();
File[] files=fileSystemView.getRoots();
for (int i = 0; i < files.length; i++) {
FileNode childFileNode = new FileNode(fileSystemView.getSystemDisplayName(files[i]), fileSystemView.getSystemIcon(files[i]), files[i], false);
DefaultMutableTreeNode childTreeNode = new DefaultMutableTreeNode(childFileNode);
((DefaultMutableTreeNode)root).add(childTreeNode);
}
}
@Override
public boolean isLeaf(Object node) {
DefaultMutableTreeNode treeNode=(DefaultMutableTreeNode)node;
FileNode fileNode=(FileNode)treeNode.getUserObject();
if(fileNode.isDummyRoot)return false;
return fileNode.file.isFile();
}
}
初始化
DefaultMutableTreeNode lastTreeNode =(DefaultMutableTreeNode) event.getPath().getLastPathComponent();
FileNode fileNode = (FileNode) lastTreeNode.getUserObject();
File[] files;
File f = new File("C:/Users/Dadaism/Desktop/123/");
if (!fileNode.isInit) {
if (fileNode.isDummyRoot) {
files = f.listFiles();
}
else {
FileSystemView fs = FileSystemView.getFileSystemView();
files = fs.getFiles(
((FileNode) lastTreeNode.getUserObject()).file,
false);
}
for (int i = 0; i < files.length; i++) {
FileNode childFileNode;
DefaultMutableTreeNode childTreeNode;
if(files[i].getName().endsWith(".txt")){
String filename = files[i].getName().replace(".txt", "");
childFileNode = new FileNode(filename,null,files[i], false);
}
else{
childFileNode = new FileNode(files[i].getName(),null,files[i],false);
}
childTreeNode = new DefaultMutableTreeNode(childFileNode);
lastTreeNode.add(childTreeNode);
}
DefaultTreeModel treeModel1 = (DefaultTreeModel) getModel();
treeModel1.nodeStructureChanged(lastTreeNode);
}
fileNode.isInit = true;
- 生成指定文件目录下的文件树
- 读取指定目录下的所有文件生成一个excel
- 生成丶清除指定目录下的HTML文件
- makefile 指定文件的生成目录
- vc查找指定目录下的文件:
- VC 遍历指定目录下的文件
- 查找指定目录下的文件
- 获取指定目录下的所有文件
- PYTHON 列出指定目录下的文件
- 遍历指定目录下的所有文件
- 删除指定目录下的文件
- 列出指定目录下的文件
- 读取指定目录下的所有文件
- Go 获取指定目录下的文件
- 目录下指定文件的批量清理
- java列出指定目录下的文件
- 获取指定目录下的文件
- 获取指定目录下的文件列表
- java中的进制转换及转换函数
- setSavepoint()进行数据库存档,mysql事务,rollback()回滚
- POJ
- SpringBoot 初探
- Scheme学习系列一 :源码安装Gambit
- 生成指定文件目录下的文件树
- Android 项目构建过程
- Java中this关键字用法
- CVPR 2017 Abstracts Collection
- Hive开发UDF
- NLTK使用总结
- Android源码(1) --- Zygote进程启动流程
- C#程序退出的几种方法
- [刷题]Codeforces Round #412(Div. 2)