我想在java中为Linux和Windows操作系统设计一个文件系统爬虫。我对java很陌生,我正在构建一个应用程序来搜索文件系统中给定文件名的匹配文件。对于Linux,我提出了以下策略,我的算法如下:
如何以类似的方式在Windows文件系统(NTFS)中搜索文件?我怎么找到根呢?
我知道这可能是一个非常低效的方法扫描文件,或我可能偏离轨道,但请建议方法或张贴链接,我可以找到有用的信息,以完成我的项目。我找到的一个这样的链接是以下一个:https://docs.oracle.com/javase/tutorial/essential/io/walk.html
我想知道实现FileVisitorInterface是否正确和有效,或者是否存在一些其他方式来完成我想做的事情。我是java的新手,所以我不知道从哪里开始,从哪里找。非常感谢您的所有回答!
发布于 2016-02-22 03:24:20
我以前也做过类似的工具。您所描述的内容听起来是一种很好的遍历方法。毕竟,文件系统只是一棵树。递归遍历树没有任何问题。如果你正在做一个发现,那就不能比在O(n)中遍历整个事情做得更好。
对于windows,您可以获得所有驱动器的列表,如下所示:
File[] roots = File.listRoots();您将得到一个数组,其内容为C:\,D:\,E:\,F:\;
通过遍历,您将不得不决定是否要先做深度优先的宽度,但是由于在找到第一个文件之后没有停止遍历,所以您选择哪种方法并不重要。
https://stackoverflow.com/questions/35545160
复制相似问题