La creación de un archivo en Windows 7 provoca la excepción “Acceso denegado”

Tengo una aplicación Java donde el usuario puede crear un archivo de texto y guardarlo donde quiera en su computadora usando este código:

File txtFile = new File( path ); Writer writer = new BufferedWriter( new OutputStreamWriter( new FileOutputStream( txtFile ), "UTF-8" ) ); // Error occurs here. 

Pero muchos usuarios que usan Windows 7 informaron que al guardar el archivo en “C: \” , obtienen el error ” Acceso denegado “. Descubrí que esto se debe a que necesitan permisos de administrador para guardar el archivo en dicha ruta en Win7.

En lugar de mostrar un mensaje de advertencia al usuario: ” No puede guardar el archivo en esta ruta “, ¿puedo guardar el archivo en esta ruta de alguna manera, como si hubiera una forma de tener permisos de administrador en Win7 a través del código Java? algo como eso ?

Respuesta corta – no.

Si necesita guardar en la unidad C, necesitan permisos. Si este progtwig solo necesita crear archivos, puede usar la carpeta temporal de los usuarios. Ver System.getProperty ()

Windows Vista y Windows 7 tienen UAC habilitado. UAC niega la creación de nuevos archivos en ALGUNAS ubicaciones, sin privilegios administrativos.

Verifique sus permisos y asegúrese de ejecutar el ejecutable java en una cuenta ADMINISTRATIVA, O inhabilite UAC.

Para hacerlo, vaya a “Inicio” escriba “CMD.EXE” -> haga clic derecho en el archivo cmd.exe y ejecute como administrador. Luego navegue a la ubicación que contiene el archivo .class. Luego escribe java ClassFile y java ClassFile enter

¿Estás usando cmd, es decir, Dos para ejecutar tu archivo o eclipse? Lo que esté usando Parece que se está ejecutando como usuario predeterminado. en Windows 7, UAC por defecto blocls writimg a system.directory.

Haz lo siguiente y con suerte debería funcionar1

 > If cmd.exe > Then when you open run from start menu. Right click it, select run as administrator and then run your application > > If eclipse/any other IDE > > Close existing, right clicl eclipse,select run as admim and then run your application > > Hope this helps 
    Intereting Posts