首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >java中的文件系统爬虫

java中的文件系统爬虫
EN

Stack Overflow用户
提问于 2016-02-22 03:04:42
回答 1查看 984关注 0票数 1

我想在java中为Linux和Windows操作系统设计一个文件系统爬虫。我对java很陌生,我正在构建一个应用程序来搜索文件系统中给定文件名的匹配文件。对于Linux,我提出了以下策略,我的算法如下:

  1. 使用java中的文件打开方法打开根目录("/")。
  2. 在当前目录中搜索文件名,如果搜索成功,则记录路径。
  3. 记录当前目录中所有目录的名称。
  4. 递归访问每个目录,如果搜索成功,则记录完整的路径名。
  5. 访问整个文件系统后,列出结果。

如何以类似的方式在Windows文件系统(NTFS)中搜索文件?我怎么找到根呢?

我知道这可能是一个非常低效的方法扫描文件,或我可能偏离轨道,但请建议方法或张贴链接,我可以找到有用的信息,以完成我的项目。我找到的一个这样的链接是以下一个:https://docs.oracle.com/javase/tutorial/essential/io/walk.html

我想知道实现FileVisitorInterface是否正确和有效,或者是否存在一些其他方式来完成我想做的事情。我是java的新手,所以我不知道从哪里开始,从哪里找。非常感谢您的所有回答!

EN

回答 1

Stack Overflow用户

发布于 2016-02-22 03:24:20

我以前也做过类似的工具。您所描述的内容听起来是一种很好的遍历方法。毕竟,文件系统只是一棵树。递归遍历树没有任何问题。如果你正在做一个发现,那就不能比在O(n)中遍历整个事情做得更好。

对于windows,您可以获得所有驱动器的列表,如下所示:

代码语言:javascript
复制
File[] roots = File.listRoots();

您将得到一个数组,其内容为C:\,D:\,E:\,F:\;

通过遍历,您将不得不决定是否要先做深度优先的宽度,但是由于在找到第一个文件之后没有停止遍历,所以您选择哪种方法并不重要。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35545160

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档