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

  FORUM HardWare.fr
  Programmation
  Java

  list

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

list

n°1567663
vashkiry
Posté le 31-05-2007 à 09:55:51  profilanswer
 

yo les geek
ptite question :
j'ai le code ci dessous qui fait une liste de fichier et je prend l'avant dernier fichier de cette liste

Code :
  1. public String recherche(File rep){
  2. File[] liste = rep.listFiles();
  3. int tmp = liste.length-2;
  4. String filePath=""+liste[tmp];
  5. return filePath;
  6. }


je souhaiterai prendre l'avant dernier fichier MODOFIE de cette liste, y a t il une quelque chose pour ca .?
merci d'avance
un apprenti geek

mood
Publicité
Posté le 31-05-2007 à 09:55:51  profilanswer
 

n°1567673
did-54
Posté le 31-05-2007 à 10:09:43  profilanswer
 

tu peux faire un lastModified() sur les fichiers et comparer pour avoir l'avant dernier...
Voir les foutre dans une collection triée par lastModified aussi ...

n°1567687
vashkiry
Posté le 31-05-2007 à 10:24:28  profilanswer
 

pour moi lasModified prend uniquement le dernier fichier modifier  
comment les classer avec ca pour pouvoir prendre l'avant dernier?

n°1567700
did-54
Posté le 31-05-2007 à 10:37:33  profilanswer
 

http://java.sun.com/j2se/1.4.2/doc [...] Modified()
 
lastModified te retourne la date de dernière modification, pas le dernier fichier modifié.
 
Pour pouvoir les classer, je dirais de créer une classe qui extends File et overrider compareTo ? Actuellement compareTo compare les paths.
Ensuite si tu les mets dans une collection triée, ca devrait le faire, non ? p'tet je dis une grosse connerie aussi :D

n°1567740
Bidem
Posté le 31-05-2007 à 11:30:08  profilanswer
 

Implémente un Comparator et utilise le pour trier ta liste grace à Collection.sort

n°1567795
vashkiry
Posté le 31-05-2007 à 12:20:45  profilanswer
 

voici ma ptite fonction qui marche , merci a tous vosu m'avez donné l'idée :

Code :
  1. public String recherche(File rep){
  2. String filePath="";
  3. File[] liste = rep.listFiles();
  4. long[] lastM = new long[liste.length];
  5. long[] lastM2 = new long[liste.length];
  6. for(int i=0;i<liste.length;i++)
  7. {
  8. lastM[i]=liste[i].lastModified();
  9. lastM2[i]=liste[i].lastModified();
  10. }
  11. int taille = lastM.length;
  12. int taille2 = taille;
  13. while(taille2>1)
  14. {
  15.  for(int i=0; i<taille-1; i++){
  16.   if(lastM[i]>lastM[i+1]){
  17.    long temp=lastM[i];
  18.    lastM[i]=lastM[i+1];
  19.    lastM[i+1]=temp;
  20.   }
  21.  }
  22.  taille2=taille2-1;
  23. }
  24. for(int i=0;i<taille;i++){
  25.  if(lastM[lastM.length-2]==lastM2[i])
  26.  {
  27.   filePath=""+liste[i];
  28.  }
  29. }
  30. return filePath;
  31. }

n°1568220
BifaceMcLe​OD
The HighGlandeur
Posté le 31-05-2007 à 17:57:27  profilanswer
 

Dommage que tu aies recodé un algorithme de tri. Arrays.sort() ou Collections.sort() le faisait déjà pour toi...

n°1568879
Cherrytree
cn=?
Posté le 02-06-2007 à 00:18:56  profilanswer
 

La solution habituelle ressemble plus à cela, hormis le monstrueux cast en int sans précautions. En vrai, on ferait le test > 0, < 0 == 0 et ce serait marre, mais j'ai la flemme :

Code :
  1. public String recherche(File rep) {
  2.     File[] liste = rep.listFiles();
  3.     Collections.sort(liste, new Comparator() {
  4.         public int compare(Object o1, Object o2) {
  5.             File f1 = (File) o1;
  6.             File f2 = (File) o2;
  7.             return (int) f1.lastModified() - f2.lastModified(); // bon ça c'est pourri, mais ça donne l'idée
  8.         }
  9.     });
  10.     if (liste.length > 1) {
  11.         return liste[liste.length - 1].getPathname();
  12.     }
  13.     return null;
  14. }

n°1573027
vashkiry
Posté le 11-06-2007 à 10:13:18  profilanswer
 

j'ai maintenant le soucis suivant
ma fonction marche mais je dois faire ce tris sur un repertoire qui est mis a jour par 2 voir 3 images chaque seconde (upload sur ftp).
je dois donc prendre l'avant derniere de ce repertoire mais les images uploadé par deux ou 3 ont la mm date mm heure mm seconde de modification et je n'ai pas l'impression que lastmodified travail sur les milliseconde. Je me retrouve donc avec des images tronqués car l'upload n'est pas encore terminé...
comment différencié ces images qui on la mm date de modif ??

n°1573151
vashkiry
Posté le 11-06-2007 à 12:07:13  profilanswer
 

bon je vais comparer les noms de fichier dans ce cas.  
savez vous comment convertir un File en String?


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

  list

 

Sujets relatifs
Listes en python : IndexError: list index out of range HmmmACTION SCRIPT, couleur List
[CSS] List style, image et hover[C++] STL - list : doit contenir uniquement des objets dynamiques ??
REQUETE MATCH ca marche toujours pas ! Imposer une methode Equals pour une recherche dans une List
[Résolu] [VB.Net] Accès variable de type Generic.List(Of ...) dans[Résolu] [C#] Mettre à jour une List à partir d'une autre
List items????Probleme de liaison entre une list et des text
Plus de sujets relatifs à : list


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)