Невозможно переименовать файл, используя метод File # renameTo () - PullRequest
1 голос
/ 20 декабря 2011

Я хочу переместить файл из одной папки в другую. Я использую File#renameTo() метод, но файл не переименован. Я не понимаю, что происходит не так.

Я использую Netbeans 7.0.1 и Apache Tomcat.

Ответы [ 2 ]

2 голосов
/ 20 декабря 2011

Я предполагаю, что вы пытаетесь перемещать файлы в веб-приложении.

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

У вас есть несколько вариантов:

1) Используйте более простой контейнер сервлетов, такой как Jetty (параметры безопасности в Jetty менее строгие).

2) Обновите файл политик каталины: Настройка catalina.policy для разрешения доступа к файлу сервлетами

3) Будьте более осторожны с тем, куда вы пытаетесь переместить файлы. API сервлета имеет хуки getResource ..., которые ссылаются на "домашнюю" среду сервлетов.

Вы также можете принять это в качестве меры предосторожности: я обнаружил, что когда я перемещаю вещи на уровне файлов в сервлете, это обычно происходит из-за ярлыка, который не нужен (внимательно посмотрите на существующие API Java EE, Вы уверены, что функциональность, которую вы получаете от всего этого Файлового ввода-вывода, еще не предоставлена ​​...?) ...

1 голос
/ 20 декабря 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...