Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1517 connectés 

  FORUM HardWare.fr
  Programmation
  Java

  [Java] Connaître l'espace disque disponible

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Java] Connaître l'espace disque disponible

n°1535857
guybrush02
Posté le 29-03-2007 à 15:05:25  profilanswer
 

Bonjour,
 
Dans le cadre d'une application de backup décentralisé, je souhaite pouvoir connaître l'espace disque local disponible.  
Cependant, je ne trouve à priori rien dans l'API qui puisse m'aider à connaitre cette quantité. Pire : un des (nombreux) reports effectués auprès de Sun et concernant le sujet indique que, jusqu'il y a peu (sans fournir de nouvelles façons de faire), il était nécessaire de "deviner" l'espace disponible en créant un fichier temporaire de taille variable croissante, jusqu'à la récupération de l'exception adéquate.  
 
Bref, cette façon de faire me semble bien impropre, et je souhaiterai faire appel à votre expérience (séquence lèche :-p) pour pouvoir récupérer cette information.  
 
En vous remerciant d'avance,  
Guybrush

mood
Publicité
Posté le 29-03-2007 à 15:05:25  profilanswer
 

n°1535998
phnatomass
Je m'empare de ton esprit !!
Posté le 29-03-2007 à 17:36:38  profilanswer
 

Java 6, si je ne dis pas de connerie

n°1536739
guybrush02
Posté le 31-03-2007 à 17:52:40  profilanswer
 

Effectivement, Java 1.6 offre quelques méthodes permettant de retrouver cette information.  
Malheureusement pour moi, je dois me contenter de la 1.5...  
 
A priori, pas de solutions miracles exceptée l'horreur dont je parle dans mon premier post.

n°1536752
the real m​oins moins
Posté le 31-03-2007 à 18:33:29  profilanswer
 

qui n'est meme pas une solution, c'est juste n'importe quoi :D

n°1536784
phnatomass
Je m'empare de ton esprit !!
Posté le 31-03-2007 à 22:44:18  profilanswer
 

Programmer en C la fonction puis passer par un appel jni.

n°1536792
the real m​oins moins
Posté le 31-03-2007 à 23:13:23  profilanswer
 

Runtime.exec() [:spamafote]

n°1536888
guybrush02
Posté le 01-04-2007 à 12:03:01  profilanswer
 

Trop dépendant de la plate-forme sur laquelle on est... malheureusement :)
Pour l'instant, étant donné que mon principal soucis est de savoir si j'ai assez d'espace disque pour répondre à une certaine requête, je tente la création d'un fichier à la taille indiquée par cette requête, et je catch les erreurs. C'est pas très propre, mais ça me permet de régler temporairement la question.  
(Parce que je ne vous cache pas qu'une application de backup sur un réseau P2P totalement décentralisé n'est pas des plus simples :-D)
 

n°1536921
Chronoklaz​m
Posté le 01-04-2007 à 13:46:36  profilanswer
 

Et à tout a hasard t'es aller voir comment est codé la fonction public long getFreeSpace() de la classe File en java 1.6 ? Ca peut peut être te donner des pistes.

n°1536926
guybrush02
Posté le 01-04-2007 à 14:14:38  profilanswer
 

Bonne idée tiens ;)
J'vais aller voir ça...

n°1536930
guybrush02
Posté le 01-04-2007 à 14:39:20  profilanswer
 

Mmmh, mouais... ^^
 

Code :
  1. public long getFreeSpace() {
  2. SecurityManager sm = System.getSecurityManager();
  3. if (sm != null) {
  4.     sm.checkPermission(new RuntimePermission("getFileSystemAttributes" ));
  5.     sm.checkRead(path);
  6. }
  7. return fs.getSpace(this, FileSystem.SPACE_FREE);
  8. }


 
 
fs.getSpace() est abstract, et fs est initialisé via getFileSystem(), malheureusement une méthode interne native...
 

mood
Publicité
Posté le 01-04-2007 à 14:39:20  profilanswer
 

n°1537211
the real m​oins moins
Posté le 02-04-2007 à 11:38:54  profilanswer
 

guybrush02 a écrit :

Trop dépendant de la plate-forme sur laquelle on est... malheureusement :)


[:tartragnan]

 


juste pour info, je viens de tomber sur FileSystemUtils.freeSpace() de commons-io, et ils font exactement comme ça, et si t'es pas sous windows ou unix bah ça te pete a la gueule :D


Message édité par the real moins moins le 02-04-2007 à 11:39:31
n°1537532
guybrush02
Posté le 02-04-2007 à 20:52:38  profilanswer
 

Pfff.... Ca vaut la peine d'avoir des JVM :ange:  
Enfin... on fera avec, pas le choix ^^  
Je me vois mal faire tourner l'app sur autre chose que du Unix ou w32, de toutes façons ^^


Message édité par guybrush02 le 02-04-2007 à 20:54:03

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Java

  [Java] Connaître l'espace disque disponible

 

Sujets relatifs
[Java - Cryptographie] Décryptage RSA par block (multipart decryption)Comment connaitre les coordonnées "area shape=rect coords"
[Java] Générer un hash MD5Pourquoi tout n'est pasobjet dans java ?
[Java] lecture d'un fichier : y'a un lézard quelque part...comment connaitre l'espace libre de ma bdd ?
[Java] WorkSpace Eclipse: lecteur réseau possible?Java video event detection
Excel problème d'espace dans gestion de fonds 
Plus de sujets relatifs à : [Java] Connaître l'espace disque disponible


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR