Переместиться в определенный каталог, не зная его имени - PullRequest
1 голос
/ 03 сентября 2011

Я хочу переместиться в каталог на Java, но я не знаю его имени? Предоставляет ли Java какую-либо функциональность для этого?

File srcFile = "C:/Entertainment/XXXXXXX/break.avi"

Я уверен, что внутри Entertainment только один каталог, но я не знаю его названия. Как я могу переместиться в каталог XXXXXXX, чтобы получить доступ к любому файлу внутри него?

Любая помощь?

Ответы [ 4 ]

4 голосов
/ 03 сентября 2011

Попробуйте,

File file = new File("C:/Entertainment");
File[] files = file.listFiles();
3 голосов
/ 03 сентября 2011
File srcDir = new File("C:/Entertainment/");
File srcFile = null;
for (File dirMember : srcDir.listFiles()) {
    if (!dirMember.isDirectory()) {
        continue; // we don't need regular files
    }
    if (dirMember.getName().equals(".")) {
        continue; // we don't need this directory
    }
    if (dirMember.getName().equals("..")) {
        continue; // we don't need the parent directory
    }
    // This is the one you need.
    srcFile = new File(new File(srcDir, dirMember.getName()), "break.avi");
}

Вы также можете использовать FileFilter, например, один из Commons IO

File dir = new File("C:/Entertainment/");
File[] files = dir.listFiles( DirectoryFileFilter.INSTANCE ); // returns all subdirs
srcFile = new File(files[0], "break.avi");
1 голос
/ 03 сентября 2011
File srcFile = new File("C:\\Entertainment");
srcFile = new File(srcFile, srcFile.list()[0]);
srcFile = newFile(srcFile, "break.avi");
System.out.println(srcFile.getPath());
0 голосов
/ 03 сентября 2011
    File outer= new File("C:/test");
    File inner = outer.listFiles()[0];//if you are sure there is one
    File[] listOfFilesInInnerMost = inner.listFiles();
    System.out.println("Files: " + Arrays.asList(listOfFilesInInnerMost));

напечатает

Файлы: [C: \ test \ что-то \ text (2) .txt, C: \ test \ что-то \ text (3) .txt, C: \ test \ что-то \ text.txt]

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...