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

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

Вместо использования файла свойств используйте файл XML.

Если данные слишком малы, вы даже можете использовать web.xml для доступа к свойствам.

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

26
задан dfa 14 August 2009 в 01:13
поделиться

3 ответа

Вы можете проверить права доступа к файлу, убедиться, что каталог существует, и сделать много проверок или найти библиотеку, которая выполняет всю эту проверку за вас НО (!) не лучший способ проверка попробовать? Если вы проверяете права доступа и изменения файловой системы ... вам придется изменить свой код. Но попытка написать файл ВСЕГДА скажет вам, можете ли вы написать файл.

Ваше решение не должно быть самым элегантным. Это не дешевый жесткий кодированный патч или что-то ужасное. Это просто нормальный код. И это всегда будет работать. Но если вам не нравится видеть эту проверку в коде, просто отделите ее, поместив в класс, единственная цель которой - проверить возможность написания. На самом деле, вы должны поместить его в полезный класс там, где вам нравится элегантность или нет.

Другим решением было бы поместить весь код записи на жесткий диск. И если вы не можете написать, вся часть будет пропущена, и вы дадите отзыв пользователю с сообщением в части catch.

19
ответ дан Philippe Carriere 25 September 2019 в 08:21
поделиться

Вы можете использовать FilePermission , чтобы получить подробную информацию. Я нахожу один способ, где вам нужно реализовать SecurityManager код здесь и здесь

0
ответ дан urmalp 25 September 2019 в 08:21
поделиться

он не работает, даже если вы вызываете canWrite на конечном пути ?

File sample = new File(fileBrowse.getParent(),"empty.txt"); 

if (sample.canWrite()) {
    doSomethingUseful(sample);
} else {
    notifyUser();
}
0
ответ дан 28 November 2019 в 05:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: