2017-01-20 4 views
0

У меня есть программа Java, которая хранит/восстанавливает данные из загрузки файлов .txt, расположенных на моем диске C. В настоящее время путь к файлам для них жестко закодирован в моей программе Java.Доступ к внешним ресурсам из пользовательского пути к файлу (Java)

Теперь я хочу распространять это программное обеспечение, и мне интересно, как я могу его сделать так, чтобы пользователь мог указать местоположение файла во время установки, а затем я могу указать свою программу на это место без жесткого кодирования.

Это довольно стандартная функциональность, но я изо всех сил пытался найти, как ее достичь. Могу ли я использовать относительные пути к файлам, т. Е. Иметь .exe для java-программы в той же папке, что и файлы .txt, или мне нужно использовать что-то вроде путей реестра Windows?

Большое спасибо за помощь.

Приветствия, Робин

+0

Я бы сэкономил себе и пользователю проблемы. Используйте «user.home» + папку в качестве местоположения. Большинство вещей хранится по умолчанию в домашнем каталоге: maven, ssh, gradle, shell history. Нет необходимости вращать его по-другому – efekctive

+0

Спасибо за ваш ответ, просто для уточнения, это просто положить его в папку C:/Users/Person и зафиксировать это как известное место, в которое он будет всегда установлен, не так ли? Таким образом, это, по сути, лучший способ жесткого кодирования корневого местоположения пользователя. –

+0

Да. Когда вы создаете путь, начинайте с родительского каталога System.getProperty («user.home»). Не забудьте также использовать File.separator, чтобы избежать конфликтов между \ и/ – efekctive

ответ

1

Используйте системное свойство «user.home» в корневом каталоге вашего пути. Большинство компонентов, установленных в эти дни, используют это системное свойство как родительский каталог и предопределенную папку. Это экономит массу неприятностей. Объедините это с символом File.separator, чтобы избежать дальнейших проблем с переносимостью.