Как указать относительный путь к файлу в java
Перейти к содержимому

Как указать относительный путь к файлу в java

  • автор:

Абсолютные и относительные пути к файлам

При работе с внешними файловыми ресурсами (текстовый файл, таблица MS Excel, объект 3D, чертеж CAD и т.д.) вы можете использовать как относительные, так и абсолютные пути к этим ресурсам.

Относительный путь определяет местонахождение файла по отношению к папке модели. Он используется по умолчанию для файлов, хранящихся в папке модели (например, для объектов 3D или чертежей CAD). Таким образом вы можете с легкостью распространять модель, просто скопировав папку модели целиком: ссылки на ресурсы останутся рабочими.

Абсолютный путь определяет абсолютное местоположение файла в файловой системе. Как правило, он используется для ресурсов, которые являются источниками данных для модели (например, текстовые файлы или таблицы MS Excel) и хранятся не в папке модели, а на файловом сервере или в папке совместного использования.

Вы можете задать абсолютный или относительный путь к внешнему файловому ресурсу.

Чтобы сменить тип пути к файлу

  1. Откройте папку Ресурсы в иерархическом дереве модели и перейдите к свойствам внешнего файлового ресурса:
  2. Щелкните по кнопке , расположенной справа от поля Файл и выберите нужную опцию из выпадающего списка:
  3. Тип пути изменится на выбранный вами.

Как указать путь к файлу?

У меня есть файл который находиться рядом с классами в src, пытаюсь прописать путь к файлу в config.properties. вот так keyFile = src/lic.aks не работает.
Пробовал разные варианты, не помогло.

  • Вопрос задан более трёх лет назад
  • 3315 просмотров

Комментировать

Решения вопроса 0

Ответы на вопрос 3

дай больше кода!

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Используйте NIO, чтобы получить получить относительный путь вместо абсолютного.

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Консультация и разработка мобильных приложений

Когда вы из IDE компилируете и запускаете приложение, оно стартует из папки где лежит, обычно /out в вашем проекте. По-этому поиск файла начинается в /out. Вы должны из нее выйти ../ или лучше использовать полный путь от пользователя ~/что-то_там/lic.aks

Ответ написан более трёх лет назад

Комментировать

Нравится Комментировать

Ваш ответ на вопрос

Войдите, чтобы написать ответ

android

  • Android
  • +1 ещё

Как обойти @UnsupportedAppUsage?

  • 1 подписчик
  • час назад
  • 5 просмотров

Класс Path

Интерфейс Path является частью обновления Java NIO 2, которое Java NIO получил в Java 6 и Java 7.

Экземпляр Path представляет путь в файловой системе.

Путь может указывать либо на файл, либо на каталог. Путь может быть абсолютным или относительным . Абсолютный путь содержит полный путь от корня файловой системы до файла или каталога, на который она указывает. Относительный путь содержит путь к файлу или каталогу относительно некоторого другого пути.

Не стоит путать путь файловой системы с переменной среды path в некоторых операционных системах. Интерфейс java.nio.file.Path не имеет ничего общего с переменной среды path .

Во многих отношениях интерфейс Path похож на класс java.io.File , но есть некоторые незначительные различия. Однако, во многих случаях вы можете заменить использование класса File на использование интерфейса Path.

Создание экземпляра Path

Чтобы использовать экземпляр Path, необходимо его создать. Мы создаем экземпляр Path, используя статический метод в классе Paths ( java.nio.file.Paths ) с именем Paths.get() .

Вот пример использования данного метода:

import java.nio.file.Path; import java.nio.file.Paths; public class PathExample < public static void main(String[] args) < Path path = Paths.get("c:\\data\\fileName.txt"); > > 

Обратите внимание на два оператора импорта в верхней части примера. Чтобы использовать интерфейс Path и класс Paths, мы должны сначала импортировать их.

Также уделим внимание вызову метода Paths.get(«c:\\data\\fileName.txt») . Это вызов метода Paths.get() , который создает экземпляр Path . Другими словами, метод Paths.get() является фабричным методом для экземпляров Path .

Создание абсолютного пути

Создание абсолютного пути выполняется путем вызова фабричного метода Paths.get() с абсолютным адресом в качестве параметра. Вот пример создания экземпляра Path , представляющего абсолютный путь:

Path path = Paths.get ("c:\\data\\fileName.txt"); 

Абсолютный путь — c:\data\fileName.txt . Двойные символы «\» необходимы в строках Java , так как «\» является escape-символом, что означает, что следующий символ указывает, какой символ действительно должен находиться в этом месте в строке. Написав «\», вы указываете компилятору записать в строку один символ .

Вышеуказанный путь — это путь к файловой системе Windows . В системе Unix (Linux, MacOS, FreeBSD и т.д.) приведенный выше абсолютный путь может выглядеть следующим образом:

Path path = Paths.get ("/home/namesirname/fileName.txt"); 

Абсолютный путь теперь — /home/namesirname/fileName.txt .

Если бы мы использовали этот тип пути на компьютере с Windows (путь, начинающийся с «\»), путь будет интерпретирован относительно текущего диска. Например, путь /home/namesirname/fileName.txt может быть интерпретирован как находящийся на диске C . Тогда путь будет соответствовать этому полному пути: C:/home/namesirname/fileName.txt .

Создание относительного пути

Относительный путь — это путь, который указывает адрес от одного пути (базовый путь) до каталога или файла. Полный путь (абсолютный путь) относительного пути получается путем объединения базового пути с относительным путем.

Класс Path также можно использовать для работы с относительными путями. Мы создаем относительный путь, используя метод Paths.get(basePath, relativePath) . Вот два примера относительного пути в Java:

Path projects = Paths.get("d:\\data", "projects"); Path file = Paths.get("d:\\data", "projects\\a-project\\fileName.txt"); 

В первом примере создается экземпляр Path , который указывает путь (каталог) d:\data\projects .

Во втором примере создается экземпляр Path , который указывает путь (файл) d:\data\projects\a-project\fileName.txt .

При работе с относительными путями в строке пути можно использовать два специальных кода. Эти коды:

. Код означает «текущий каталог». Например, если вы создаете относительный путь:

Path currentDir = Paths.get("."); System.out.println(currentDir.toAbsolutePath()); 

тогда абсолютный путь, которому соответствует экземпляр Path, будет каталогом, в котором выполняется приложение, выполняющее вышеуказанный код.

Если данный код используется в середине строки пути, это просто означает тот же каталог, на который указывал путь в этой точке. Вот пример Path, показывающий это:

Path currentDir = Paths.get("d:\\data\\projects\.\a-project"); 

Этот путь будет соответствовать пути: d:\data\projects\a-project .

Код .. означает «родительский каталог» или «подняться на один каталог вверх». Вот пример Path, иллюстрирующий это:

Path parentDir = Paths.get(".."); 

Экземпляр Path, созданный в этом примере, будет соответствовать родительскому каталогу каталога, из которого было запущено приложение, выполняющее этот код.

Если мы используем код .. в середине строки пути, это будет соответствовать изменению одного каталога в этой точке в строке пути. Например:

String path = "d:\\data\\projects\\a-project\\..\\another-project"; Path parentDir2 = Paths.get(path); 

Экземпляр Path, созданный в этом примере, будет соответствовать этому абсолютному пути: d:\data\projects\another-project .

Код .. после каталога a-project меняет каталог проектов родительского каталога, а затем путь указывает вниз на каталог другого проекта.

Коды . и .. также работают в сочетании с двухстрочным методом Paths.get() . Вот два примера Paths.get() , показывающие простые примеры этого:

Path path1 = Paths.get("d:\\data\\projects", ".\\a-project"); Path path2 = Paths.get("d:\\data\\projects\\a-project", "..\\another-project"); 

results matching » «

No results matching » «

Как получить путь к файлу java

getParent() — возвращает «родительскую» директорию по отношению к текущему пути (то есть ту директорию, которая находится выше по дереву каталогов).

File f = new File("c:\\users\\program.txt"); String Parent = f.getParent(); 

getRoot() — возвращает «корневую» директорию; то есть ту, которая находится на вершине дерева каталогов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *