扫描文件目录并树形展示,利用jQueryTreeTable实现,怎么将同目录文件夹升序,文件降序呢?正文贴代码

本贴最后更新于 3132 天前,其中的信息可能已经天翻地覆

以下是代码,如果太长不想看,可以看图 😢

public static Map traverseDirectory(String DirPath, int level, String rootDir, Map map) {

// 根据目录构造file对象
File dirFile = new File(DirPath);
// 列出该目录下的文件和目录
String[] fileArr = dirFile.list();

// 目录非空
if (fileArr != null && fileArr.length > 0) {
  List<UnFileTab> fileList = (List<UnFileTab>) map.get(level);
  if (fileList == null) {
    fileList = new ArrayList<UnFileTab>();
  }
  // 遍历保存该目录下的文件和目录至Map中,以level为key,所有文件(目录)封装为UNFileTab对象存入list作为value
  for (String filePath : fileArr) {
    // Map ChildFileMap = new HashMap();// 每层一个
    File file = new File(DirPath + File.separator + filePath);
    UnFileTab unfile = null;
    unfile = assembleFile(file, level, rootDir);
    fileList.add(unfile);
    // ChildFileMap.put(rootDir, fileList);// 储存方式 父节点文件名为Key 值为父节点下的list
    map.put(rootDir, fileList);
    if (file.isDirectory()) {
      int nowLevel = level + 1;
      traverseDirectory(DirPath + File.separator + filePath, level + 1, filePath, map);
      map.put("MAXLEVEL", nowLevel);
    }
  }

}
return map;

}

    public static StringBuilder parseDirectory(List<UnFileTab> list,
  Map<String, List<UnFileTab>> map, StringBuilder sb, String rootDir, String level) {
if (list != null && list.size() > 0) {
  for (int i = 0; i < list.size(); i++) {
    UnFileTab unf = list.get(i);
    if ((i & 1) != 0) {// 奇数
      sb.append("<tr class=\"even branch ui-droppable\" data-tt-id=\""
          + assembleVersion(level, i) + "\"  data-tt-parent-id=\"" + level + "\">");// 第一次 根目录
    } else {
      sb.append("<tr class=\"odd branch ui-droppable\" data-tt-id=\""
          + assembleVersion(level, i) + "\"  data-tt-parent-id=\"" + level + "\">");
    }
    sb.append("<td align=\"center\">  <span " + getTypeClass(unf.getType()) + " >"
        + unf.getFilename() + "</span></td>");
    sb.append("<td align=\"center\" class=\"indenter\">" + unf.getParent() + "</td>");
    sb.append("<td align=\"center\" class=\"indenter\">" + getType(unf.getType()) + "</td>");
    sb.append("<td align=\"center\" class=\"indenter\"> 修改  删除  新增</td>");
    sb.append("<td style=\"display:none\">" + unf.getPath() + "</td>");
    sb.append("</tr> \n");
    List<UnFileTab> childList = map.get(unf.getFilename());
    if (childList != null && childList.size() > 0) {
      parseDirectory(childList, map, sb, unf.getFilename(), assembleVersion(level, i));
    }
  }
}

return sb;

}

1461745177729
1461745193800

感觉用 QQ 截图发出来也是不错的啊

  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 724 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250

    贴图的确不错....不过最好还是贴代码吧,容易让别人搜索到

  • 其他回帖
  • Angonger

    如果我解决了,就把解决贴出来

推荐标签 标签

  • OpenStack

    OpenStack 是一个云操作系统,通过数据中心可控制大型的计算、存储、网络等资源池。所有的管理通过前端界面管理员就可以完成,同样也可以通过 Web 接口让最终用户部署资源。

    10 引用 • 5 关注
  • 面试

    面试造航母,上班拧螺丝。多面试,少加班。

    325 引用 • 1395 回帖 • 1 关注
  • jQuery

    jQuery 是一套跨浏览器的 JavaScript 库,强化 HTML 与 JavaScript 之间的操作。由 John Resig 在 2006 年 1 月的 BarCamp NYC 上释出第一个版本。全球约有 28% 的网站使用 jQuery,是非常受欢迎的 JavaScript 库。

    63 引用 • 134 回帖 • 724 关注
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用 • 3 关注
  • 音乐

    你听到信仰的声音了么?

    60 引用 • 511 回帖
  • Git

    Git 是 Linux Torvalds 为了帮助管理 Linux 内核开发而开发的一个开放源码的版本控制软件。

    209 引用 • 358 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    169 引用 • 506 回帖 • 1 关注
  • GAE

    Google App Engine(GAE)是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。2008 年 4 月 发布第一个测试版本。目前支持 Python、Java 和 Go 开发部署。全球已有数十万的开发者在其上开发了众多的应用。

    14 引用 • 42 回帖 • 764 关注
  • OkHttp

    OkHttp 是一款 HTTP & HTTP/2 客户端库,专为 Android 和 Java 应用打造。

    16 引用 • 6 回帖 • 63 关注
  • InfluxDB

    InfluxDB 是一个开源的没有外部依赖的时间序列数据库。适用于记录度量,事件及实时分析。

    2 引用 • 72 关注
  • Facebook

    Facebook 是一个联系朋友的社交工具。大家可以通过它和朋友、同事、同学以及周围的人保持互动交流,分享无限上传的图片,发布链接和视频,更可以增进对朋友的了解。

    4 引用 • 15 回帖 • 454 关注
  • 前端

    前端技术一般分为前端设计和前端开发,前端设计可以理解为网站的视觉设计,前端开发则是网站的前台代码实现,包括 HTML、CSS 以及 JavaScript 等。

    247 引用 • 1348 回帖
  • Wide

    Wide 是一款基于 Web 的 Go 语言 IDE。通过浏览器就可以进行 Go 开发,并有代码自动完成、查看表达式、编译反馈、Lint、实时结果输出等功能。

    欢迎访问我们运维的实例: https://wide.b3log.org

    30 引用 • 218 回帖 • 629 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖 • 3 关注
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 673 关注
  • 七牛云

    七牛云是国内领先的企业级公有云服务商,致力于打造以数据为核心的场景化 PaaS 服务。围绕富媒体场景,七牛先后推出了对象存储,融合 CDN 加速,数据通用处理,内容反垃圾服务,以及直播云服务等。

    27 引用 • 225 回帖 • 169 关注
  • Redis

    Redis 是一个开源的使用 ANSI C 语言编写、支持网络、可基于内存亦可持久化的日志型、Key-Value 数据库,并提供多种语言的 API。从 2010 年 3 月 15 日起,Redis 的开发工作由 VMware 主持。从 2013 年 5 月开始,Redis 的开发由 Pivotal 赞助。

    286 引用 • 248 回帖 • 62 关注
  • 服务

    提供一个服务绝不仅仅是简单的把硬件和软件累加在一起,它包括了服务的可靠性、服务的标准化、以及对服务的监控、维护、技术支持等。

    41 引用 • 24 回帖 • 1 关注
  • 大数据

    大数据(big data)是指无法在一定时间范围内用常规软件工具进行捕捉、管理和处理的数据集合,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。

    93 引用 • 113 回帖 • 1 关注
  • 人工智能

    人工智能(Artificial Intelligence)是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的一门技术科学。

    133 引用 • 189 回帖
  • Hexo

    Hexo 是一款快速、简洁且高效的博客框架,使用 Node.js 编写。

    21 引用 • 140 回帖 • 2 关注
  • Sym

    Sym 是一款用 Java 实现的现代化社区(论坛/BBS/社交网络/博客)系统平台。

    下一代的社区系统,为未来而构建

    524 引用 • 4601 回帖 • 699 关注
  • 周末

    星期六到星期天晚,实行五天工作制后,指每周的最后两天。再过几年可能就是三天了。

    14 引用 • 297 回帖
  • IBM

    IBM(国际商业机器公司)或万国商业机器公司,简称 IBM(International Business Machines Corporation),总公司在纽约州阿蒙克市。1911 年托马斯·沃森创立于美国,是全球最大的信息技术和业务解决方案公司,拥有全球雇员 30 多万人,业务遍及 160 多个国家和地区。

    17 引用 • 53 回帖 • 137 关注
  • 创业

    你比 99% 的人都优秀么?

    84 引用 • 1399 回帖
  • Flutter

    Flutter 是谷歌的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。 Flutter 可以与现有的代码一起工作,它正在被越来越多的开发者和组织使用,并且 Flutter 是完全免费、开源的。

    39 引用 • 92 回帖 • 2 关注
  • Eclipse

    Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。

    75 引用 • 258 回帖 • 618 关注