Java可以访问操作系统中的搜索文件系统功能吗?

时间:2011-08-16 20:51:06

标签: java filesystems operating-system

在最新版本的Windows中,您可以点击开始菜单并开始输入以搜索文件系统中的文件。有没有办法用Java编程?

我的具体目的是允许用户选择文件或目录。用户可以直接在应用程序内部开始键入文件名,并且可以开始显示建议。比在典型的文件选择器中导航目录容易得多。

4 个答案:

答案 0 :(得分:1)

您在问题的第二部分要求的内容可以通过简单的方式完成:

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

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

您不必担心在此处支持命令行调用的包装器。这是反平台独立的。

答案 1 :(得分:1)

您可以编写JNI代码来包装+公开任何Windows本机功能。

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

答案 2 :(得分:1)

本文通过访问本机功能详细介绍了在Windows中执行此操作的方法:

Query Windows Search from Java

这个详细介绍了如何在Mac OS下执行类似的操作(使用mdfind):

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

答案 3 :(得分:0)

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