2013-04-16 2 views
1

Я пытаюсь найти способ найти определенный файл в каталоге компьютера в java 6. В частности, моя программа запускает программу Pymol, размещая pymol.exe на жестком диске и выполняя команду для ее запуска. Я отлично работаю в Java 7, используя интерфейс File Visitor. Тем не менее, я пытаюсь сделать его совместимым с Java 6, поэтому мне нужно найти альтернативный метод для поиска этой программы (или определения того, что пользователь не установил ее). Есть идеи?Прогулка файлового дерева в Java 6

+0

я тонко вы должны найти его в PATH – BlackJoker

+0

Использование рекурсивной функции вызова [File.listFiles (FilenameFilter)] (http://docs.oracle.com/javase/6/docs/ api/java/io/File.html # listFiles (java.io.FilenameFilter)) или лучше FileFilter для выборки подкаталогов. –

ответ

0

Просто выполните рекурсивное обход дерева в каталоге файлов, пока не найдете файл или обход конца.

2

попробовать

File findFile(String name, File dir) { 
    for (File f : dir.listFiles()) { 
     if (f.isFile() && f.getName().equals(name)) { 
      return f; 
     } 
    } 
    for (File f : dir.listFiles()) { 
     if (f.isDirectory()) { 
      return findFile(name, f); 
     } 
    } 
    return null; 
} 
+0

Когда я запускаю этот метод, он возвращает null, хотя я знаю, что файл, который я ищу, есть –

+0

Кажется, что он проходит через первую папку, с которой он сталкивается, проверяя имя, а затем возвращающий нуль, а не просматривая другие папки в корневой каталог –

Смежные вопросы