Есть ли простой способ получить путь к файлу, если я знаю имя файла?
Получить путь к файлу из имени файла с помощью Java
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
я все еще использую 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
у меня уже есть имя файла «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
как вы сказали в своем комментарии под постом: вы не можете избежать обхода каталогов.
- 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
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