Я пишу программу резервного копирования с использованием Java, и я хотел бы сохранить файлы и каталоги в пункт назначения резервного копирования на основе абсолютных имен путей источников.Каков наилучший способ преобразования абсолютного имени пути для использования в качестве подкаталога?
Программа резервного копирования должна работать в разных операционных системах (Unix, Windows, Mac OS X), поэтому мне нужно преобразовать абсолютные пути к исходным файлам и каталогам.
Итак, в конце я хотел бы преобразовать абсолютный путь источника к регулярному подпутью адресата. Позвольте мне привести несколько примеров.
Unix
путь Абсолютный Источник: /главная/Thomas/данные
назначения путь: /резервного копирования
Эффективное назначения: /резервного копирования/дома/Thomas/данные
Windows
Абсолютный путь источника: c: \ Documents and Settings \ thomas
назначения Путь: е: \ резервного копирования
Эффективное назначение: е: \ BACKUP \ C \ Documents и Settings \ томас
Я мог бы использовать операции замены строк, но я ожидаю, чтобы запустить на несколько проблем и начать бесконечную историю коррекции.
Я думаю, что среда Windows требует специальной обработки из-за ведущих букв дисков. Под * nix я мог бы просто объединить два пути. Также обратите внимание, что путь источника может быть UNC-контуром под Windows, например \\ share \ data.
Я искал вокруг и нашел несколько похожих вопросов, но никто из них не ответил на мои вопросы (например, Is there a Java utility which will convert a String path to use the correct File separator char? или Convert Windows-style path into Unix path).
Возможно, у кого-нибудь есть идея или подсказка для меня или знает о библиотеке, которая уже делает то, что я ищу.
Вы пробовали что-нибудь? –
См. Https://docs.oracle.com/javase/7/docs/api/java/nio/file/Path.html#relativize%28java.nio.file.Path%29 – dhke
Хм, может быть, я не понимаю, но метод в вашей ссылке можно использовать для вычисления «корабля отношения» между двумя путями. Я хотел бы создать новый подпуть, основанный на абсолютном пути источника и пути назначения. – Thorsten