Метод toRealPath
Метод toRealPath класса Path возвращает
объект Path, представляющий реальный путь
к файлу или каталогу в файловой системе.
При этом раскрываются все символические ссылки,
а также удаляются избыточные элементы пути,
такие как . и ... В первый параметр
можно передать опции типа LinkOption,
например LinkOption.NOFOLLOW_LINKS,
чтобы не раскрывать символические ссылки.
Если файл или каталог не существует,
метод выбрасывает исключение IOException.
Синтаксис
path.toRealPath(options)
Пример
Давайте получим реальный путь для текущего каталога:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Paths.get(".");
Path res = path.toRealPath();
System.out.println(res);
}
}
Результат выполнения кода:
"/home/user/project"
Пример
Давайте получим реальный путь с опцией
LinkOption.NOFOLLOW_LINKS, чтобы не раскрывать
символические ссылки:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.LinkOption;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Paths.get(".");
Path res = path.toRealPath(LinkOption.NOFOLLOW_LINKS);
System.out.println(res);
}
}
Результат выполнения кода:
"/home/user/project"
Пример
Давайте получим реальный путь для файла и сравним его с абсолютным путём:
import java.nio.file.Path;
import java.nio.file.Paths;
import java.io.IOException;
public class Main
{
public static void main(String[] args) throws IOException
{
Path path = Paths.get("src/Main.java");
Path real = path.toRealPath();
Path absolute = path.toAbsolutePath();
System.out.println(real);
System.out.println(absolute);
System.out.println(real.equals(absolute));
}
}
Результат выполнения кода:
"/home/user/project/src/Main.java"
"/home/user/project/./src/Main.java"
false
Смотрите также
-
класс
Path,
который представляет путь в файловой системе -
метод
toAbsolutePath,
который возвращает абсолютный путь -
метод
normalize,
который удаляет избыточные элементы пути -
метод
getFileName,
который возвращает имя файла или каталога