在整个计算机中搜索Java中的文件名

3 java search file

有没有办法在整个计算机中搜索表示Java中文件名的String值?这将是不知道计算机上驱动器的名称.

Eri*_*lje 6

您可以通过查看文件名,递归地获取内容(如果它是目录等)来遍历文件系统.

如果关键点是如何获取计算机上的驱动器,请查看File.listRoots()函数以获取驱动器号的列表.

ETA:

为了绝对安全,您需要在递归处理中包含一些限制.可以在文件系统中使用符号链接等进行循环(特别是在LINUX/UNIX中,但第三方工具也可以在Windows中启用它).

要确保在处理符号链接时没有进入循环,请使用File.getCanonicalPath方法获取目录的"真实"路径并跟踪所有访问的规范路径.您也可以使用getCanonicalFile并跟踪所有文件,但这可能不需要,除非您真的想要避免偶尔会处理同一文件两次的实例.

  • 注意可能创建无限递归的链接.@Nuno:好的.当包含其挂载点的目录为"已列出"时,将返回已挂载的驱动器. (2认同)