[RESOLU][java] recupérer la taille d'un fichier

recupérer la taille d'un fichier [RESOLU][java] - Java - Programmation

Marsh Posté le 08-05-2002 à 19:52:37    

je voudrais récup la taille d'un fichier sur le hdd ou au pire venant d'une url, vous savez comment faire?

 

[jfdsdjhfuetppo]--Message édité par kakou le 08-05-2002 à 19:59:26--[/jfdsdjhfuetppo]

Reply

Marsh Posté le 08-05-2002 à 19:52:37   

Reply

Marsh Posté le 08-05-2002 à 20:10:52    

Si tu laisses ton topic dis au moins comment tu as fait pour le résoudre, comme ça quelqu'un qui fait une recherche trouvera la réponse...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 03-06-2002 à 15:39:16    

ouais, c'est vrai ça !

Reply

Marsh Posté le 03-06-2002 à 15:42:20    

pour ceux que ca intéresse, il faut créer une instance de File avec le fichier en question et appliquer length() dessus
 

Citation :


length
public long length()Returns the length of the file denoted by this abstract pathname. The return value is unspecified if this pathname denotes a directory.  
 
Returns:
The length, in bytes, of the file denoted by this abstract pathname, or 0L if the file does not exist  


---------------
Just because you feel good does not make you right
Reply

Marsh Posté le 23-07-2002 à 13:31:29    

c'est ce que j'ai utiliser la methode length
 
je l'avais po vu dans la doc

Reply

Marsh Posté le 12-11-2002 à 11:38:51    

et comment on recupere la taille d'un repertoire et de tous se kil contient ????
 

Reply

Marsh Posté le 12-11-2002 à 11:42:41    

On se la paluche à la main, en récupérant toutes les entrées File du répertoire et en faisant la somme de leur taille respective (éventuellement de manière récursive si tu veux aussi la taille cumulée des fichiers des sous-répertoires).

Reply

Marsh Posté le 12-11-2002 à 11:51:54    

j'y avais bien pensé mais je me suis dis c le truc de bourrin et ki doit bien y avoir une methode en java qui le fé plus proprement
 
non ?

Reply

Marsh Posté le 12-11-2002 à 11:57:27    

Ba en tout cas, demande-toi comment ferait la méthode Java toute propre pour déterminer la taille du contenu du répertoire :) Elle ferait du récursif, tout simplement, y a pas d'magie ;)


---------------
Everyone thinks of changing the world, but no one thinks of changing himself  |  It is the peculiar quality of a fool to perceive the faults of others and to forget his own  |  Early clumsiness is not a verdict, it’s an essential ingredient.
Reply

Marsh Posté le 12-11-2002 à 15:07:02    

pkoi ca marche pô ??
 
[code]
 
  public long tailleRepertoire(File raa){
    String list [];
    File r= new File("c:/projetarchivage/archi1/" );
    long taille=0;
    File f;
    if (r.isDirectory()){
      list = r.list();
      for (int i = 0; i < list.length; i++){
        f= new File(list[i]);
        taille=taille+f.length();
        System.out.println(":"+f.getName()+": "+f.length());
      }
    }
    return taille;
  }

Reply

Marsh Posté le 12-11-2002 à 15:07:02   

Reply

Marsh Posté le 12-11-2002 à 15:08:32    

il m'affiche  bien le nom des fichiers mais pour la taille il me marque 0
 
PS :Il n'y pas de sous repertoire

Reply

Marsh Posté le 12-11-2002 à 15:32:01    

Il manque un else :

Code :
  1. public long tailleRepertoire(File raa) {
  2.     File  r = new File("c:/projetarchivage/archi1/" );
  3.     long  taille;
  4.     if (r.isDirectory()) {
  5.       String[] list = r.list();
  6.       taille = 0;
  7.       for (int i = 0; i < list.length; i++) {
  8.         File  f = new File(list[i]);
  9.         taille += f.length();
  10.         System.out.println(":" + f.getName() + ": " + f.length());
  11.       }
  12.     }
  13.     else {
  14.       taille = r.length();
  15.     }
  16.     return taille;
  17.   }


 
PS: Une balise [/code], c'est utile... ;)
Et la balise [cpp], c'est encore mieux !


Message édité par BifaceMcLeOD le 12-11-2002 à 15:34:43
Reply

Marsh Posté le 12-11-2002 à 15:33:59    

A part ça, le paramètre de la fonction n'est pas très utile ici. A moins qu'il soit destiné à remplacer la variable locale "r"...

Reply

Marsh Posté le 12-11-2002 à 16:02:18    

BifaceMcLeOD a écrit a écrit :

A part ça, le paramètre de la fonction n'est pas très utile ici. A moins qu'il soit destiné à remplacer la variable locale "r"...




 
 
Ben oui c pour apres.
 
Sinon je vois pas se que ca change de mettre le else puisque c forcement un repertoire que je lui fil

Reply

Marsh Posté le 12-11-2002 à 18:06:27    

Au temps pour moi.
 
Bah là, je sèche, il faut que je réfléchisse...
 
edit> Je sèche d'autant plus que ta fonction, chez moi, elle marche :


$ java -classpath . TestFile
:FileSystemModel.java: 4176
:Test.java: 1756
:Test2.java: 1083
:TestFile.class: 1015
:TestFile.java: 706
:TestFile.java~: 675
:TestParseInt.class: 828
:TestParseInt.java: 295
:TestParseInt.java~: 287
:TreeTableExample0.java: 1169
:TreeTableExample3.java: 7166
:Triangles.java: 574
Taille: 19730


 
En mettant ta fonction dans une classe TestFile qui contient le main suivant :

Code :
  1. public static void main(String[] arguments) {
  2.         System.out.println("Taille: " + tailleRepertoire(new File("." )));
  3.     }


(il faut aussi mettre la fonction statique)
 
Seule réponse que je peux t'apporter : ce n'est pas un répertoire (d'où l'utilité du "else" ;) ), ou ce chemin n'existe pas.


Message édité par BifaceMcLeOD le 12-11-2002 à 18:10:46
Reply

Marsh Posté le 12-11-2002 à 18:15:05    

je comprend pas paskil me marque bien les nom des fichiers mais  
la taille est a 0
 
 
:ArchConst.java: 0
:archi1123456ab.cdetestzip: 0
:archi1admin.exetestzip: 0
:Archivage.java: 0
:CadreArchiver.java: 0
:CadreInfo.java: 0
:CadreMenu.java: 0
:CadreRestaurer.java: 0
:CompressZip.java: 0
:DecompressZip.java: 0
:List.java: 0
:MainFrame.java: 0
:Traitement.java: 0
:video2.mpg: 0

Reply

Marsh Posté le 12-11-2002 à 18:18:38    

Tu utilises quel JDK et quel OS ?

Reply

Marsh Posté le 13-11-2002 à 09:25:11    

win xp et le j2SE 1.3.1

Reply

Marsh Posté le 13-11-2002 à 15:05:40    

ca pete les c.... , pour l'instant j'avance dans mon prog mais faudra bien que ca marche un jour.....


---------------
heu...
Reply

Marsh Posté le 14-11-2002 à 08:32:47    

voila j'ai trouvé le pb en me brossant les dents ce matin
le probleme est que r.list retourne juste les nom de fichier sans leur chemin. donc r.length() ne trouve pas le fichier et donc sa taille
 

Code :
  1. public long tailleRepertoire(String chemin){
  2.     String list [];
  3.     File r= new File(chemin);
  4.     File f=null;
  5.     long taille=0;
  6.     if (r.isDirectory()){
  7.       list = r.list();
  8.       for (int i = 0; i < list.length; i++){
  9.         f= new File(chemin+list[i]);
  10.         taille=taille+f.length();
  11.       }
  12.     }else{
  13.       return -1;
  14.     }
  15.     return taille;
  16.   }


Message édité par xtoune le 14-11-2002 à 08:35:58

---------------
heu...
Reply

Marsh Posté le 14-11-2002 à 11:59:16    

C'est fou ce qu'on peut faire en se lavant les dents... :D

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed