Получить путь к файлу из имени файла с помощью Java

Есть ли простой способ получить путь к файлу, если я знаю имя файла?


person user1688404    schedule 22.11.2012    source источник
comment
Вы имеете в виду, что у вас есть имя файла и вы хотите получить путь? Что делать, если есть много файлов с такими именами?   -  person m0skit0    schedule 22.11.2012
comment
да. я хотел знать, есть ли какой-либо код oneliner, который получит путь к уже существующему файлу. Я думаю, что мне придется искать в каталогах, а затем перечислять файлы.   -  person user1688404    schedule 22.11.2012


Ответы (5)


Вы можете использовать Path API:

Path p = Paths.get(yourFileNameUri);
Path folder = p.getParent();
person assylias    schedule 22.11.2012
comment
я все еще использую Java версии 1.6.0_31. Я полагаю, что Path API поставляется с Java 1.7. - person user1688404; 22.11.2012

Посмотрите на методы в классе java.io.File:

File file = new File("yourfileName");
String path = file.getAbsolutePath();
person jlordo    schedule 22.11.2012
comment
у меня уже есть имя файла «file1.txt», и он хранится в D:\\IM\\EclipseWorkspaces\\runtime-EclipseApplication\\Proj\\Software и если файл файла = новый файл (file1.txt); и получить file.getAbsolutePath, он дает мне D:\\IM\\EclipseVersions\\EclipseSDK3_7\\file1.txt. чего я не хочу. - person user1688404; 22.11.2012
comment
как вы сказали в своем комментарии под постом: вы не можете избежать обхода каталогов. - person jlordo; 22.11.2012

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

System.out.println("File path: " + new File("Your file name").getAbsolutePath());

У класса File есть еще несколько методов, которые могут оказаться полезными.

person Miloš Ranđelović    schedule 22.11.2012

Правильное решение с классом "Файл" для получения каталога - "путь" к файлу:

String path = new File("C:\\Temp\\your directory\\yourfile.txt").getParent();

который вернет:

path = "C:\\Temp\\your directory"
person Markus    schedule 13.07.2018
comment
getParent() возвращает строку. Нужно изменить File path на String path - person Ascalonian; 23.10.2018

Вы можете использовать:

FileSystems.getDefault().getPath(new String()).toAbsolutePath();

or

FileSystems.getDefault().getPath(new String("./")).toAbsolutePath().getParent()

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

Пример: /src/main/java...

person N Djel Okoye    schedule 27.01.2020