#java #path
#java #путь
Вопрос:
Я нахожусь на компьютере с Windows, и мне нужно установить связь с некоторыми путями к POSIX
системе. Поэтому я хотел бы объединить два POSIX
пути в Windows. В Python я мог бы использовать для этого posixpath
стандартную библиотеку даже в Windows, но, похоже, Path
класс Java поддерживает только установленные файловые системы, которых POSIX
нет на компьютере с Windows.
В настоящее время я использую это:
private String posixJoin(String a, String b) {
StringBuilder joined = new StringBuilder(a);
if (!a.endsWith("/") amp;amp; !a.isEmpty()) {
joined.append('/');
}
joined.append(b);
return joined.toString();
}
Но я опасаюсь любых крайних случаев, которые могут возникнуть при работе с путями, и предпочел бы использовать что-нибудь из стандартной библиотеки, если это возможно. Есть ли что-нибудь в стандартной библиотеке Java или экосистеме для объединения путей, отличных от тех, которые найдены на текущем компьютере?
Комментарии:
1. почему вы не смогли работать с
Path
и в конце makePath.toString().replace('\', '/')
? Да, вы не хотите использовать внешние библиотеки, но FilenameUtils могли бы решить проблему с этим2. @ZhenyaM Возможное решение, но все еще кажется далеко не идеальным, и мне неясно, есть ли для этого какие-либо крайние случаи. Я написал Windows в названии, но в идеале я бы не хотел предполагать, что она работает и в Windows.
3. Хорошо, вы могли бы использовать
FilenameUtils.separatorsToUnix(path.toString())