2009-10-15 4 views

Répondre

0

Vérifiez cet exemple: http://littletutorials.com/2008/03/10/getting-file-system-details-in-java/

sur l'environnement Windows vous pouvez lire la variable HOMEDRIVE. Si vous exécutez ce code, vous verrez toutes les variables d'environnement disponibles.

import java.util.Map; 

public class EnvMap { 
    public static void main (String[] args) { 
     Map<String, String> env = System.getenv(); 
     for (String envName : env.keySet()) { 
      System.out.format("%s=%s%n", envName, env.get(envName)); 
     } 
    } 
} 

HOMEDRIVE n'existe pas en tant que concept dans les environnements Unix.

4

effectuez les opérations suivantes sous Windows:

File file = new File(".").getAbsoluteFile(); 
File root = file.getParentFile(); 
while (root.getParentFile() != null) { 
    root = root.getParentFile(); 
} 
System.out.println("Drive is: "+root.getPath()); 

Sur les systèmes Unix, ce sera moins utile que la racine sera toujours/

0

Selon le java.io.File javadoc:

Le parent d'un chemin d'accès abstrait peut être obtenu en appelant la méthode getParent() de cette classe et est constitué du préfixe du chemin et chaque nom dans la séquence du nom de chemin, sauf pour le dernier. Le chemin d'accès absolu de chaque répertoire est un ancêtre de tout objet File avec un chemin absolu qui commence par le chemin absolu du répertoire. Par exemple, le répertoire désigné par le chemin d'accès abstrait "/ usr" est un ancêtre du répertoire désigné par le chemin d'accès "/ usr/local/bin".

Le concept de préfixe est utilisé pour gérer répertoires racine sur les plates-formes UNIX, et conduire spécificateurs, répertoires racine et UNC noms de fichiers sur les plates-formes Microsoft Windows , comme suit:

  • Pour les plates-formes UNIX, la Le préfixe d'un chemin absolu est toujours "/". Les chemins relatifs n'ont pas de préfixe. Le chemin d'accès abstrait indiquant le répertoire racine a le préfixe "/" et une séquence de noms vide . Pour les plates-formes Microsoft Windows, le préfixe d'un chemin contenant un spécificateur de lecteur est constitué de la lettre de lecteur suivie de ":" et éventuellement suivie de "\\" si le chemin d'accès est absolu. Le préfixe d'un chemin d'accès UNC est "\\\\"; le nom d'hôte et le nom de partage sont les deux premiers noms de la séquence de noms. Un chemin relatif qui ne spécifie pas de lecteur n'a pas de préfixe.

Ainsi, une solution pourrait consister à créer un objet File relatif (utilisez "." pour le répertoire en cours), obtenir le parent et extraire la lettre de lecteur. Ce n'est bien sûr pas portable.

0

Si vous voulez connaître le répertoire de travail courant du système en cours d'exécution, vous utilisez les éléments suivants:

String currentDirectory = System.getProperty("user.dir"); 

Cela vous indiquera le répertoire dans lequel il a été lancé en, ce qui est souvent là où le fichier Jar est situé ou la racine du classpath est située.

Édition: Le System Class javadoc for the method getProperties() possède l'ensemble commun de propriétés système disponibles.

Questions connexes