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

StackOverflow https://stackoverflow.com/questions/2378169

Вопрос

У меня есть два File Объекты, которые я могу подумать о следующем реализации:

public File convertToRelative(File home, File file) {
    final String homePath = home.getAbsolutePath();
    final String filePath = file.getAbsolutePath();

    // Only interested in converting file path that is a 
    // direct descendants of home path
    if (!filePath.beginsWith(homePath)) {
        return file;
    }

    return new File(filePath.substring(homePath.length()+1));
}

Есть ли какой-то более умный способ преобразования абсолютного файла пути к относительному файлу?

Возможный дубликат:

Как построить относительный путь в Java с двух абсолютных путей или URL

Это было полезно?

Решение

Этот вопрос был задан раньше здесь

Вот ответ на всякий случай

String path = "/var/data/stuff/xyz.dat";
String base = "/var/data";
String relative = new File(base).toURI().relativize(new File(path).toURI()).getPath();
// relative == "stuff/xyz.dat"
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top