Necesito hacer que los archivos y las carpetas estén ocultos tanto en Windows como en Linux. Sé que se agrega un '.' al frente de un archivo o carpeta lo ocultará en Linux. ¿Cómo puedo ocultar un archivo o una carpeta en Windows?Crear un archivo/carpeta oculta en Windows con Java
Respuesta
Para Java 6 y por debajo,
Usted tendrá que utilizar una llamada nativa, aquí es una manera de ventanas
Runtime.getRuntime().exec("attrib +H myHiddenFile.java");
Debe conocer un poco acerca de Win32 API o Java nativo.
La funcionalidad que se desea es una característica de NIO.2 en la próxima Java 7.
He aquí un artículo que describe cómo va a ser utilizado para lo que necesita: Managing Metadata (File and File Store Attributes). Hay un ejemplo con DOS File Attributes:
Path file = ...;
try {
DosFileAttributes attr = Attributes.readDosFileAttributes(file);
System.out.println("isReadOnly is " + attr.isReadOnly());
System.out.println("isHidden is " + attr.isHidden());
System.out.println("isArchive is " + attr.isArchive());
System.out.println("isSystem is " + attr.isSystem());
} catch (IOException x) {
System.err.println("DOS file attributes not supported:" + x);
}
atributos ajuste se puede hacer usando DosFileAttributeView
Teniendo en cuenta estos hechos, no creo que hay una norma y elegante manera de lograr eso en Java 6 o Java 5.
esto es lo que yo uso:
void hide(File src) throws InterruptedException, IOException {
// win32 command line variant
Process p = Runtime.getRuntime().exec("attrib +h " + src.getPath());
p.waitFor(); // p.waitFor() important, so that the file really appears as hidden immediately after function exit.
}
Java 7 puede ocultar un fichero del DOS de esta manera:
Path path = ...;
Boolean hidden = path.getAttribute("dos:hidden", LinkOption.NOFOLLOW_LINKS);
if (hidden != null && !hidden) {
path.setAttribute("dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS);
}
Los primeros Java-s no pueden.
El código anterior no generará una excepción en sistemas de archivos que no sean DOS. Si el nombre del archivo comienza con un punto, entonces también estará oculto en los sistemas de archivos UNIX.
El método getAttribute (String, LinkOption) no está definido para el tipo java.nio.file.Path (JDK 7u13) – Antonio
Antonio, debe haber sido así en la versión borrador de Java 7 que utilicé. Veo que una funcionalidad similar ahora está en java.nio.file.Files. –
Puede usar 'Files.setAttribute' que aceptará una' Ruta' para establecer el atributo. –
String cmd1[] = {"attrib","+h",file/folder path};
Runtime.getRuntime().exec(cmd1);
utilizar el código que se podría resolver un problema
en las ventanas, usando NIO de Java, archivos
Path path = Paths.get(..); //< input target path
Files.write(path, data_byte, StandardOpenOption.CREATE_NEW); //< if file not exist, create
Files.setAttribute(path, "dos:hidden", Boolean.TRUE, LinkOption.NOFOLLOW_LINKS); //< set hidden attribute
Agregue una descripción de cómo el código que publicó responde la pregunta del usuario – Suever
Aquí es un totalmente compilables Java 7 ejemplo de código que oculta un archivo arbitrario en Windows .
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.nio.file.attribute.DosFileAttributes;
class A {
public static void main(String[] args) throws Exception
{
//locate the full path to the file e.g. c:\a\b\Log.txt
Path p = Paths.get("c:\\a\\b\\Log.txt");
//link file to DosFileAttributes
DosFileAttributes dos = Files.readAttributes(p, DosFileAttributes.class);
//hide the Log file
Files.setAttribute(p, "dos:hidden", true);
System.out.println(dos.isHidden());
}
}
Verificar que el archivo esté oculto. Haga clic derecho en el archivo en cuestión y verá después de la ejecución de la corte que el archivo en cuestión está realmente oculto.
- 1. Subproceso multiplataforma con ventana oculta
- 2. Cómo crear una ventana oculta en C++
- 3. Cómo hacer una carpeta oculta usando java
- 4. Crear Windows Installer para programas Java
- 5. jqueryui datepicker con entrada oculta
- 6. Cómo crear un servicio de Windows desde java jar?
- 7. Cómo crear un servicio de Windows desde la aplicación java
- 8. Crear PDF con Java
- 9. Apagar Windows con Java
- 10. Crear un servidor java con reposo
- 11. Crear un certificado OpenSSL en Windows
- 12. Crear un GUID en Java
- 13. Crear un servicio de Windows en delphi
- 14. Crear un servicio de Windows en vb6
- 15. ¿Cómo comunicarse con un dispositivo USB en Windows y Java?
- 16. Errores al compilar un programa java con maven en Windows
- 17. Windows "siempre encendido" con Java
- 18. Crear varias PC virtuales de Windows con Windows XP Mode
- 19. Crear archivo con un tamaño determinado en Java
- 20. Crear un botón personalizado en Java con JButton
- 21. Cómo crear un menú emergente con submenú en Java
- 22. Crear usuario local con PowerShell (Windows Vista)
- 23. Crear un volcado de almacenamiento en java desde un volcado de memoria de Windows
- 24. Crear clases Java con JaxB
- 25. Crear un JButton personalizado en Java
- 26. ¿Cómo crear un singleton verdadero en java?
- 27. Cómo crear un archivo exe en java
- 28. Crear una carpeta nueva usando el Programa Java en máquinas con Windows y Linux
- 29. ¿Cómo puedo crear un nuevo proceso con otra cuenta de usuario en Windows?
- 30. Windows Azure: Cómo crear un subdirectorio en un envase burbuja
"nativo" significa que se está ejecutando el código específico de la plataforma. 'exec()' dispara un shell DOS/Windows para ejecutar un programa DOS/Windows. –
¡Eres un salvavidas! –
¿Qué sucede cuando este código se ejecuta en Linux? ¿O cómo lo evito? – Xerus