2013-04-10 2 views
1

Я знаю, как создать новую папку, если она еще не присутствует в Java.Как создать папку в каталоге файлов программы пользователя?

File directory = new File("path"); 
directory.mkdir(); 

ли все разработчики используют Program Files расположение, чтобы создать папки для их приложений для хранения данных? Этот путь всегда одинаковый для каждого пользователя, который использует приложение? Как разработчики Java приспосабливаются к различию в файлах файлов пользователей Mac?

Мне также интересно, является ли System.getProperty("user.home"); обычным способом навигации по системе для создания путей к файлам?

+0

Смотрите этот вопрос: http://stackoverflow.com/questions/6561172/find-directory-for-application-data-on-linux-and-macintosh - это немного грязно, я боюсь. – Sharkos

+1

Будьте осторожны при вызове 'mkdir()' - вы должны обратить внимание на возвращаемое значение. Я предпочитаю новый 'Files.createDirectory()' в Java 7. Он гарантирует, что каталог будет создан. –

+0

Почему вы хотите создать папку в Program Files? Вы делаете установщик или хотите сохранить данные приложения? Если вы хотите сохранить данные приложения, папка Program Files не рекомендуется. Вместо этого используйте Application Data (AppData). –

ответ

0

Для 32-битной программы на 32-битном компьютере, или 64-битной программы на 64-битной ПК:

System.getenv("ProgramFiles")  

Для 32-битной программы на 64-битной ПК:

System.getenv("ProgramFiles(X86)") 

Они работают только на системах Windows, очевидно ..

0

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

Вместо этого я делаю это (и я говорю пользователям об этом, поэтому его не удивительно для одного приложения. Я даже открываю папку, так как есть некоторые пользовательские префиксы, доступные для редактирования.): 1. проверьте, если c:/apps/sel2in/noteMaker есть, если не пытаться создать 2. если ошибка сделать D:/приложения/.... 3. еще использовать и сделать его с помощью System.getProperty ("user.home")

используйте mkdirs так он создает родительские папки по мере необходимости.

FYI/отлично работает в Java в окнах, Java изменяет его внутренне и его легче ввести, чем \ для меня

Для Unix я обычно берут из параметров 1 в качестве пути файла свойств и имеет папку сохранить другие файлы и другие настройки.

+0

Удивительный ответ! Я ценю подсказку с /. Я довольно новичок в Java. Я думаю, что я возьму ваш подход с утверждениями if/else, прибегая к user.home, если все остальное не удастся. – user2267769

+0

необходимо проверить ошибку, если папка не существует и т. Д. Или c:/не существует или не имеет разрешения на запись. лучше вызвать функцию вокруг try catch и, наконец, использовать значение по умолчанию, если путь null или can not read (fileObject.canRead()), если он работает – tgkprog

Смежные вопросы