2014-09-18 3 views
-3

Я пытаюсь перебирать файлы (с помощью Java) с путем, как показано ниже:Доступ к файлам внутри неизвестной папки

D: \ level1 \ [имя переменной директории] \ 3 уровня \ целью

как я могу получить доступ к этому файлу?

благодаря

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

File[] varDirectories = new File(driveLetter+":"+File.separator+"level1"+File.separator).listFiles(new FileFilter() 
    { 
     @Override 
     public boolean accept(File pathname) { 
      return pathname.isDirectory(); 
     } 
    }); 
for(File dir : directories) 
    { 
     sfos.add(new File(driveLetter+":"+File.separator+"level1"+File.separator+dir.getName()+File.separator+"level3"+File.separator+"goal")); 
    } 
+0

Ваш вопрос является слишком широким, и вы не проявляли никаких усилий на это – ControlAltDel

+1

Если у вас нет * имени каталога, то вы * не можете * перебирать файлы в этом каталоге. Если у вас есть имя каталога, но часть этого имени находится в переменной, вы можете * построить * строку из этой переменной. Где именно вы застряли? Что вы пробовали? – David

ответ

0

дикий удар, предполагая, что цель является каталогом не файл:

while(notFinished) { 
    String variableDirectoryName = getDirectoryName(); 
    File[] files = new File("D:/level1/level2/" + variableDirectoryName + "/level3/goal").listFiles(); 
    for(File file : files) { 
     // do whatever with the file 
    } 
} 
+0

Откуда взялось getDirectoryName()? – Ramin

+0

Я подумал, что это зависит от вас. Вы сказали, что будет переменное имя каталога. Как это задано/определено? Вам нужно значение полного пути к файлу, чтобы использовать что-то в конце полного пути к файлу (очевидно). – mmcrae

+0

хорошо существует несколько каталогов с разными именами, но после этого путь остается неизменным, я надеялся, что могу просто проигнорировать это имя и войти в это имя каталога w/e. – Ramin

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