Java能否访问操作系统中的搜索文件系统特性



在最近的windows版本中,您可以点击开始菜单并开始键入以在整个文件系统中搜索文件。有没有一种方法可以在Java中以编程的方式做到这一点?

我的具体目的是允许用户选择一个文件或目录。用户可以直接在应用程序中输入文件名,然后它就会开始显示建议。

这篇文章详细介绍了在Windows中通过访问本地功能来做到这一点的方法:

从Java查询Windows搜索

这个详细说明了如何在Mac OS下做类似的事情(使用mdfind):

http://lists.apple.com/archives/Java-dev/2006/Oct/msg00224.html

你的问题第二部分的要求可以用一个简单的:

File dir = new File( "/path/to/dir" );
String[] contents = dir.listFiles();

第一部分有点难,但可以在 Java中使用递归的相同技术来完成(for(String fl: contents){ /* do the above */ })

您不需要担心在这里支持命令行调用的包装器。

您可以编写JNI代码来封装和暴露任何windows本机功能。

如果它只是用于文件对话框中的自动完成样式行为,则不需要包装本机功能,只需使用java.io中的标准内容即可。

听起来不太可能是Java的一部分,因为Java应该是平台独立的。这样的搜索还需要对所有文件进行某种索引,以提高效率。

最新更新