2010-01-04 8 views
14

Je veux créer un dossier caché en utilisant l'application java. Ce programme devrait fonctionner à travers la plate-forme. Alors, comment écrire un programme qui peut créer un dossier caché.Comment créer un dossier caché en utilisant java

J'ai essayé d'utiliser

File newFile = new File("myfile"); 
newFile.mkdir(); 

Il crée un répertoire qui n'est pas caché.

+0

Puis-je demander pourquoi vous en avez besoin? Et savez-vous que caché est un concept différent dans différents systèmes d'exploitation? –

+3

dupliquer: http://stackoverflow.com/questions/1294989/make-a-file-folder-hidden-on-windows-with-java –

Répondre

14

Le concept de fichiers/dossiers cachés est très spécifique à l'OS et non accessible via l'API Java. Dans Linux, les fichiers et les dossiers dont le nom commence par un point sont cachés par défaut dans de nombreux programmes - cela est facile.

Dans Windows, "caché" est un drapeau spécial stocké dans le système de fichiers. Il n'y a pas d'API Java pour le changer; vous pouvez utiliser Runtime.exec() pour exécuter la commande attrib.

+0

Alors que cela fonctionne, je vous recommande d'utiliser la méthode Java 7 de Pal mentionnée ci-dessous avant avoir recours au hack d'exécution (et vérifier qu'il s'agit de fenêtres avant d'exécuter le hack d'exécution) –

4

Pour qu'un fichier ou un répertoire soit masqué sous Unix, son nom doit commencer par un point (.).

Pour créer un fichier caché sous Windows, vous devez définir le bit 'caché' dans ses attributs. La bibliothèque standard Java n'offre pas cette fonctionnalité (bien qu'il existe une méthode file.isHidden()), et je ne connais pas d'un autre outil.

6

sous * nix vous venez de renommer le fichier afin que

filename = ".".filename; 
3

Vous pouvez utiliser une forme de modèle d'usine pour vos besoins de pliage croisé. Mais ce que tout le monde a dit. Je crains que vous ne puissiez pas le faire avec une ligne de code, car je peux juste sentir que vous le voulez. Mes condoléances.

3

c'est le travail du système d'exploitation (et vous êtes bien sûr le boss du système d'exploitation). Mais vous pouvez exécuter la commande attrib (Windows) et dire à OS (Windows) que vous voulez créer un dossier "caché".

public class Main { 

    public static void main(String[] args) { 
     try 
     {    
      Runtime rt = Runtime.getRuntime(); 
      //put your directory path instead of your_directory_path 
      Process proc = rt.exec("attrib -s -h -r your_directory_path"); 
      int exitVal = proc.exitValue(); 
     } catch (Throwable t) 
      { 
      t.printStackTrace(); 
      } 

    } 
} 
+0

Il est nécessaire d'attendre la fin du processus avant de prendre son code de sortie. 'proc.waitFor()' devrait être utilisé à la place de 'proc.exitValue() ', car ce dernier provoque un' IllegalThreadStateException: le processus n'a pas quitté –

26

Si vous utilisez Java 7, vous pouvez utiliser le nouveau package java.nio.file.attribute comme ceci:

Path path = FileSystems.getDefault().getPath("/j", "sa"); 
Files.setAttribute(path, "dos:hidden", true); 

Voir plus d'infos sur http://download.oracle.com/javase/tutorial/essential/io/fileAttr.html

Ou, si vous utilisez une version plus ancienne de Java et/ou voulez le faire en utilisant Runtime, essayez ceci:

Process process = Runtime.getRuntime().exec("cmd.exe /C attrib -s -h -r your_path"); 

Voir plus d'information sur cmd et attrib.

0

Essayez les étapes suivantes:

1. make a folder with extension **.jad** and move your videos,photos, etc 
    on that folder.. 
2. now create same folder with extenson **.jar** (ex- if u create 
    videos.jad then create videos.jar) 
3. finished .. Videos.jad will hide .. Delete the .jar .jad will come 
    again 
Questions connexes