Создание кросс-платформенного пути к файлу и представление - PullRequest
8 голосов
/ 01 декабря 2010

Я нахожусь в стадии рефакторинга для проекта, над которым я работаю, и хотел бы внести некоторые улучшения в то, как я строю и представляю пути файловой системы.Что следует учитывать при представлении относительных путей в коде Java для обеспечения совместимости в Ubuntu, OSX и Windows 7.

В настоящее время для получения экземпляра файла, ссылающегося на «MyProject / foo / bar.f»будет иметь следующий код:

File bar = new File(ProjectDirectory + "/" + FooResourceDirectory + "/" + barName);

Это кажется неправильным по нескольким причинам, каковы некоторые из лучших практик?

Ответы [ 2 ]

12 голосов
/ 01 декабря 2010

Возможно, используйте конструкторы, предусмотренные для таких вещей:

new File(parent, child)

Вы должны "вложить" их, но это легко сделать (например, сделать функцию, чтобы получить путь, построенный из чего-либо, принимающего string....)

См. Конструкторы файлов .

9 голосов
/ 01 декабря 2010

Прежде всего вы должны использовать File.separator File.pathSeparator вместо "/".

...