Может ли Java получить доступ к функции поиска файловой системы в операционной системе? - PullRequest
1 голос
/ 17 августа 2011

В последних версиях Windows вы можете нажать меню «Пуск» и начать набирать текст для поиска файлов в файловой системе. Есть ли способ сделать это программно в Java?

Моя конкретная цель - позволить пользователю выбрать файл или каталог. Пользователь может начать вводить имя файла непосредственно внутри приложения, и он может начать показывать предложения. Гораздо проще, чем перемещаться по каталогам в обычном средстве выбора файлов.

Ответы [ 4 ]

1 голос
/ 17 августа 2011

В этом посте подробно описан способ сделать это в Windows с помощью встроенной функции:

Запрос поиска Windows из Java

А здесь подробно рассказывается, как сделать что-то подобное (используя mdfind) под Mac OS:

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

1 голос
/ 17 августа 2011

Вы можете написать код JNI для переноса + предоставления любых собственных функций Windows.

Если это просто для поведения стиля автозаполнения в файловом диалоге, вам не нужно переносить нативную функциональность, вы можете просто использовать стандартные вещи в java.io.

1 голос
/ 17 августа 2011

То, что вы просите во второй части вашего вопроса, может быть сделано с помощью простого:

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

Первая часть немного сложнее, но она может быть выполнена внутри Java использует ту же технику, которая называется рекурсивно.(for(String fl: contents){ /* do the above */ })

Вам не нужно беспокоиться о поддержке оболочек для вызовов командной строки здесь.Это антиплатформенный независимый.

0 голосов
/ 17 августа 2011

Звучит маловероятно, что я являюсь частью Java, поскольку предполагается, что Java не зависит от платформы.Такие поиски должны требовать своего рода индекса по всем файлам, чтобы быть также эффективными.

...