Pregunta

Tengo un código que efectivamente hace esto:

File file = new File("C:\\Program Files (x86)\\Something\\fred.txt");
System.out.println("file.canWrite() = " + file.canWrite());

Se imprime verdadero. Ahora lo extraño es que puedo crear el archivo sin excepciones. Además, otro programa puede leer el archivo que he creado. ¡El problema es que, en el Explorador de Windows, el archivo no aparece en absoluto!

Muestra los archivos ocultos que puedas estar pensando, pero no, tengo esa opción activada.

También descubrí 'archivos súper ocultos' en Vista, ¡así que activé esa opción y todavía no puedo ver el archivo! Tal vez no he editado mi registro correctamente, solo puedo suponer que el archivo está súper oculto, ¿dónde más podría estar?

Ahora el problema es que estoy creando un archivo html y cuando enciendo un navegador, no puede ver el archivo html porque está súper oculto.

¿Cómo puedo evitar que Java cree un archivo súper oculto? Esto se ejecuta bajo la actualización 6 de JRE 6.

¿Fue útil?

Solución

Lo más probable es que sea una " víctima " de redirección de carpetas. Cuando UAC está habilitado, cualquier escritura en Archivos de programa se redirige a otro lugar cuando no está ejecutando el programa como administrador.

Debería encontrar su archivo en C: \ Users \ < nombre de usuario > \ AppData \ Local \ VirtualStore \ < inserte > \ < esperado > \ < ruta > \ < aquí > ;.

La solución adecuada, por supuesto, es no escribir en Archivos de programa en primer lugar. En su lugar, use en algún lugar del directorio de inicio del usuario (la ubicación exacta en la que debe escribir depende del propósito de la aplicación).

Otros consejos

Creo que la actualización 10 podría haber cambiado este comportamiento. Sé que reimplementé muchas de las cosas del navegador para que funcionen mejor con Vista. Sin embargo, no estoy 100% seguro, pero le sugiero que eche un vistazo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top