ejemplo - java io filenotfoundexception permission denied
Java: acceso denegado java.io.FileNotFoundException (5)
Esta pregunta ya tiene una respuesta aquí:
- java.io.FileNotFoundException: (Acceso denegado) 4 respuestas
Tengo el siguiente código:
List<FileItem> items = uploadHandler.parseRequest(request);
for (FileItem item : items) {
if (!item.isFormField()) {
File file = new File("D:/Data");
}
}
Cuando intento guardar un archivo, aparece el siguiente error
java.io.FileNotFoundException: D:/Data (Access is denied.)
¿Cuál podría ser la razón y cómo puedo resolver esto? Tengo permiso de lectura y escritura en esta carpeta.
Asegúrese de que el directorio exista, tiene permiso para acceder a él y agregue el archivo a la ruta para escribir el registro:
File file = new File("D:/Data/" + item.getFileName());
Cuando crea un nuevo File
, se supone que debe proporcionar el nombre del archivo, no solo el directorio en el que desea colocar su archivo.
Prueba con algo como
File file = new File("D:/Data/" + item.getFileName());
Es necesario establecer permisos para los controles de usuario.
- Ir a C: / Archivos de programa /
- Haga clic derecho en la carpeta Java, haga clic en Propiedades. Seleccione la pestaña de seguridad.
- Allí, haga clic en el botón "Editar", que abrirá la ventana de PERMISOS PARA JAVA.
- Haga clic en Agregar, que aparecerá una nueva ventana. En eso, en el cuadro "Introduzca el nombre del objeto", ingrese el nombre de su cuenta de usuario y haga clic en Aceptar (si ya existe, omita este paso).
- Ahora, en la ventana "PERMISOS DE JAVA", verá varias opciones para hacer clic como CREATOR OWNER, SYSTEM, entre ellas su nombre de usuario. Haga clic en él y marque la opción CONTROL COMPLETO en Permisos para la ventana secundaria.
- Finalmente, pulse aplicar y está bien.
He buscado este problema y obtuve las siguientes respuestas:
-
"C:/Program Files/Apache-tomcat-7.0.69/"
elimina la barra invertida adicional (/
) - Haga clic con el botón derecho en la carpeta de registro en la carpeta tomcat y en la pestaña de seguridad, otorgue esta carpeta como permiso de escritura y luego reinicie los beans de red como administrador.
Su problema será resuelto
No es exactamente el caso de esta pregunta, pero puede ser útil. Obtuve esta excepción cuando llamo a mkdirs () en un archivo nuevo en lugar de a su padre
File file = new java.io.File(path);
//file.mkdirs(); // wrong!
file.getParentFile().mkdirs(); // correct!
if (!file.exists()) {
file.createNewFile();
}