Как различать пути между окнами и *nix

Я работаю над приложением восстановления, где пути восстановления — это либо пути Windows, либо пути Unix (я не знаю, какие именно), а затем мне нужно сопоставить их с соответствующим путем в текущей ОС.

Очевидно, Windows ==> Windows, *nix ==> *nix прямолинейны. Однако, когда исходные пути взяты из Windows, перемещение их в *nix проблематично, поскольку *nix будет интерпретировать эти пути как имя файла (например, C:\folderA\fileB.txt сопоставляется с файлом в *nix, а не как путь к /папкаA/файлB.txt)

Что я хочу сделать, так это заранее проанализировать пути, определить, являются ли они путями windows/*nix, а затем обработать их соответствующим образом.

Какие-либо предложения?

Джонатан


person jonatzin    schedule 21.11.2012    source источник


Ответы (2)


Класс java.io.File отлично работает с путями, разделенными косой чертой, на обеих платформах.

Вы также можете проанализировать пути для значений File.separator в зависимости от платформы, на которой работает программа.

person Dan D.    schedule 21.11.2012

Поскольку API-интерфейсы Windows обрабатывают обратную косую черту \ и косую черту / одинаково как разделители путей, и поскольку здравомыслящие люди в Unix не встраивают обратную косую черту в имена файлов, вы можете просто преобразовать обратную косую черту в косую черту. Это оставило бы вас только с буквами диска (C: и т. д.) в начале пути, с которым нужно иметь дело.

person Jonathan Leffler    schedule 21.11.2012