Подтвердить что ты не робот

Доступ запрещен java.io.FileNotFoundException

У меня есть следующий код:

List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item : items) {
    if (!item.isFormField()) {
        File file = new File("D:/Data");
    }
}

Когда я пытаюсь сохранить файл, я получаю следующую ошибку

java.io.FileNotFoundException: D:\Data (Access is denied.)

Что может быть причиной и как я могу это решить? У меня есть права на чтение и запись в этой папке.

4b9b3361

Ответ 1

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

Попробуйте что-то вроде

File file = new File("D:/Data/" + item.getFileName());

Ответ 2

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

File file = new java.io.File(path);
//file.mkdirs(); // wrong! 
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
    file.createNewFile();
} 

Ответ 3

Вам необходимо установить разрешение для пользовательских элементов управления.

  • Перейти к C:\Program Files\
  • Щелкните правой кнопкой мыши папку java и выберите свойства. Выберите вкладку безопасности.
  • Там, нажмите кнопку "Изменить", в результате чего откроется окно PERMISSIONS FOR JAVA.
  • Нажмите "Добавить", в котором появится новое окно. В этом поле в поле "Введите имя объекта" введите имя своей учетной записи и нажмите   хорошо (если они уже существуют, пропустите этот шаг).
  • Теперь в окне "PERMISSIONS OF JAVA" вы увидите несколько кликов такие как CREATOR OWNER, SYSTEM, среди которых       имя пользователя. Нажмите на него и отметьте опцию FULL CONTROL в       Разрешения для вспомогательного окна.
  • Наконец, Hit применим и все в порядке.

Ответ 4

У меня есть поиск этой проблемы, и я получил следующие ответы:

  • "C:\Program Files\Apache-tomcat-7.0.69\" удалить дополнительную обратную косую черту (\)
  • Щелкните правой кнопкой мыши папку журнала в папке tomcat, а на вкладке безопасности укажите эту папку в качестве разрешения на запись, а затем перезапустите net- beans как запуск как администратор.

Ваша проблема будет решена.

Ответ 5

Убедитесь, что каталог существует, у вас есть разрешение на доступ к нему и добавление файла в путь для записи журнала:

File file = new File("D:/Data/" + item.getFileName());