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

  FORUM HardWare.fr
  Programmation
  Java

  Identificateur de fichier

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Identificateur de fichier

n°609801
Gautier
Posté le 12-01-2004 à 23:34:01  profilanswer
 

Bonsoir,
 
Je cherche une fonction qui avec un fichier en entrée me ressortirait un identificateur spécifique à ce fichier.
 
Ainsi, si deux fichiers retournent le meme identificateur, on pourrait considérer que ces deux fichiers sont identiques.
 
Et si on applique la fonction à deux fichiers différents, l'identificateur retourné devra etre différent.
 
 
Déjà, est ce que ce genre de fonction est possible ?
est ce qu'elle existe déjà en java ?
le cas échéant, est-elle réalisable ?
 
Merci

mood
Publicité
Posté le 12-01-2004 à 23:34:01  profilanswer
 

n°609816
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 12-01-2004 à 23:47:03  profilanswer
 

Euh bin... à pat comparer les fichiers octet par octet, y a pas de méthode 100 % sûre de comparaison [:spamafote]
Tu peux utiliser diverses méthodes qui vont te donner un résultat avec une marge d'erreur minime (hashage, etc...) mais je crois pas qu'il y ait quoi que ce soit qui permettent de générer un identifiant affirmant avec certitude que deux fichiers sont identiques.


---------------
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.
n°609831
the real m​oins moins
Posté le 13-01-2004 à 00:09:24  profilanswer
 

en meme temps, File f = new File(pouet) et File g = new File(tralala), if (f!=null && g !=null && f.exists() && f.getAbsolutePath().equals(g.getAbsolutePath()), ça doit pouvoir le faire :D


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610102
Gautier
Posté le 13-01-2004 à 07:16:01  profilanswer
 

le truc c que mes deux fichiers sont sur deux ordinateurs différents
 
Je m'interesse à la méthode donnant un résultat avec une marge minime, pourrais je avoir plus de détails sur les fonction de hashage en java svp ?
 
Merci

n°610104
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 13-01-2004 à 07:20:43  profilanswer
 

Bin y a la classe MessageDigest dans javax.security qui devrait faire la plus grosse partie du boulot pour toi avec l'algorithme MD5. Maintenant, stu connais pas la notion, je te recommanderais de te documenter un peu dessus avant de te lancer dans le codage du truc ;)


---------------
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.
n°610118
souk
Tourist
Posté le 13-01-2004 à 08:41:53  profilanswer
 

il faut que les deux fichiers soient identiques ou que ce soit le meme fichier ?
 
genre 2 fichiers texte avec "toto" dedans doivent avoir le meme identificateur ? un identificateur different chacun ?

n°610121
El_gringo
Posté le 13-01-2004 à 08:49:46  profilanswer
 

Ben, vu ce qu'il vient de dire, il parle du contenu qui doit ê identique, pas des fichiers. Par contre j'vois pas pourquoi y aurait pas une méthode 100% sûre de comparaison. Essaye de voir si t'as moyen de trouver les sources du fameux "MD5Check" du monde unix (qui permet de calculer un identifiant unique en fonction du contenu d'un fichier, afin de vérifier si, lors d'un téléchargement par exemple, le fichier reçu a exactement le même contenu que le fichier d'origine).


---------------
Les Vers Solitaires, on aime ... ou pas !
n°610130
darklord
You're welcome
Posté le 13-01-2004 à 09:05:52  profilanswer
 

faut faire un hash du contenu :o

n°610136
uriel
blood pt.2
Posté le 13-01-2004 à 09:22:02  profilanswer
 

un genre de 'diff/sdiff', il me semble qu'il y a une methode pour ça  [:wawash]
 
edit: ben non (c'est pour des objets :/) je vote donc pour un hashage aussi  [:spamafote]


Message édité par uriel le 13-01-2004 à 09:31:32

---------------
IVG en france
n°610149
benou
Posté le 13-01-2004 à 09:44:20  profilanswer
 

el_gringo a écrit :

Ben, vu ce qu'il vient de dire, il parle du contenu qui doit ê identique, pas des fichiers. Par contre j'vois pas pourquoi y aurait pas une méthode 100% sûre de comparaison.


ben parce que tu peux pas mettre 2 bits en 1 [:spamafote]
 
par contre avec un algo de hashage bien choisi tu peux dire que si le hashachage obtenu est identique, il y a de très fortes chances que les fichiers soient identiques.


---------------
ma vie, mon oeuvre - HomePlayer
mood
Publicité
Posté le 13-01-2004 à 09:44:20  profilanswer
 

n°610220
El_gringo
Posté le 13-01-2004 à 11:22:02  profilanswer
 

benou a écrit :


ben parce que tu peux pas mettre 2 bits en 1 [:spamafote]


 
Ha ouais. En plus j'avais déja eu une discution + ou - similaire avec toi ! :jap:


---------------
Les Vers Solitaires, on aime ... ou pas !
n°610237
benou
Posté le 13-01-2004 à 11:33:52  profilanswer
 

el_gringo a écrit :


Ha ouais. En plus j'avais déja eu une discution + ou - similaire avec toi ! :jap:  


ouais il me semblait bien :D


---------------
ma vie, mon oeuvre - HomePlayer
n°610283
the real m​oins moins
Posté le 13-01-2004 à 12:37:08  profilanswer
 

benou a écrit :


ben parce que tu peux pas mettre 2 bits en 1 [:spamafote]
 
par contre avec un algo de hashage bien choisi tu peux dire que si le hashachage obtenu est identique, il y a de très fortes chances que les fichiers soient identiques.

mais pour calculer le hash d'un fichier tu dois lire le fichier en intégralité (enfin je crois???), donc autant comparer bit à bit..


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610285
uriel
blood pt.2
Posté le 13-01-2004 à 12:39:25  profilanswer
 

Code :
  1. try {
  2.         // Compute Adler-32 checksum
  3.         CheckedInputStream cis = new CheckedInputStream(
  4.             new FileInputStream("filename" ), new Adler32());
  5.         byte[] tempBuf = new byte[128];
  6.         while (cis.read(tempBuf) >= 0) {
  7.         }
  8.         long checksum = cis.getChecksum().getValue();
  9.     } catch (IOException e) {
  10. }


 
et zou  [:spamafote]


---------------
IVG en france
n°610287
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 13-01-2004 à 12:41:27  profilanswer
 

the real moins moins a écrit :

mais pour calculer le hash d'un fichier tu dois lire le fichier en intégralité (enfin je crois???), donc autant comparer bit à bit..


Bin ui, +1 [:spamafote]
Pis ça bouffera moins de CPU :o
Sinon, uriel, pour ton bout de code, j'avais lu quelque part qu'un buffer pour lire des fichiers, c'était bien par blocs de 1024 (j'parle au niveau des perfs).


---------------
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.
n°610293
the real m​oins moins
Posté le 13-01-2004 à 12:46:33  profilanswer
 

heckedInputStream cis = new CheckedInputStream(new BufferedInputStream(new FileInputStream("filename" ))
 
;)
 
au fait, en passant par un Buffered* , est-ce que ça pose un problème de faire ensuite un read byte par byten c-a-d read(), au lieu de passer par un array buffer?


Message édité par the real moins moins le 13-01-2004 à 12:46:45

---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610298
the real m​oins moins
Posté le 13-01-2004 à 12:48:58  profilanswer
 

je viens de voir qu'il y avait aussi CRC32 qu'on peut utiliser a la place du Adler32 ci-dessus.
 
http://java.sun.com/j2se/1.4.2/doc [...] CRC32.html
 
Mais ici qqun a du recoder un algo de CRC, parce qu'il n'était apparement pas standard, celui de la sdk.... qqun à un avis la dessus??


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610299
benou
Posté le 13-01-2004 à 12:56:58  profilanswer
 

the real moins moins a écrit :

mais pour calculer le hash d'un fichier tu dois lire le fichier en intégralité (enfin je crois???), donc autant comparer bit à bit..


c'est vrais quand tu fais une comparaison unitaire, maintenant  si tu dois comparer un ensemble de fichiers à un ensemble de fichier ...


Message édité par benou le 13-01-2004 à 12:57:08

---------------
ma vie, mon oeuvre - HomePlayer
n°610303
the real m​oins moins
Posté le 13-01-2004 à 13:03:01  profilanswer
 

benou a écrit :


c'est vrais quand tu fais une comparaison unitaire, maintenant  si tu dois comparer un ensemble de fichiers à un ensemble de fichier ...

euh quoi?


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610317
benou
Posté le 13-01-2004 à 13:18:51  profilanswer
 


ben quoi ?
 
Imagine que tu dois comparer les fichiers contenus dans 2 reps ? si tu fais des comparaisons bit à bit faudra comparer tous les fichiers 1 à 1 ... alors qu'en calculant un identifiant, tu n'as ensuite plus qu'à comparer les identifiants 1 à 1 ce qui au final t'as fait économiser pas mal de calcul.


---------------
ma vie, mon oeuvre - HomePlayer
n°610323
the real m​oins moins
Posté le 13-01-2004 à 13:24:30  profilanswer
 

et pour calculer les identifiants de chacun des fichiers tu fais comment? [:nofret]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610324
benou
Posté le 13-01-2004 à 13:27:18  profilanswer
 

the real moins moins a écrit :

et pour calculer les identifiants de chacun des fichiers tu fais comment? [:nofret]


ben tu lis chaque fichier mais juste une fois [:kiki]


---------------
ma vie, mon oeuvre - HomePlayer
n°610326
the real m​oins moins
Posté le 13-01-2004 à 13:31:31  profilanswer
 

benou a écrit :


ben tu lis chaque fichier mais juste une fois [:kiki]

honnetement, tu te trouves clair là?
 
qui a parlé d'effectuer plusieurs comparaison de chacun des fichiers?
et qu'est-ce que ça a voir avec le fait qu'il y ait plusieurs fichiers, justement. ça n'a a voir qu'avec le fait qu'on veut comparer et recomparer un meme fichier plusieurs fois.
 
alors ton kiki, tu te le fous au cul, merci.


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610331
benou
Posté le 13-01-2004 à 13:37:12  profilanswer
 

oui je me trouve clair. C'est même tellement évident que ca a pas besoin d'explication alors c'est pas parce que tu comprends pas que je suis pas clair.
 
Et je réponds pas pas aux impolis


---------------
ma vie, mon oeuvre - HomePlayer
n°610334
the real m​oins moins
Posté le 13-01-2004 à 13:44:33  profilanswer
 

ok [:ula]
 
 
(sérieux ça fait presque pitié)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610336
benou
Posté le 13-01-2004 à 13:48:56  profilanswer
 


attends, t'as vu comment tu me prends de haut ??
 
C'est toi qui demande un truc et tu te permets de me répondre comme ca parce que je suis pas assez clair pour toi :pfff:


---------------
ma vie, mon oeuvre - HomePlayer
n°610337
the real m​oins moins
Posté le 13-01-2004 à 13:50:16  profilanswer
 

benou a écrit :


attends, t'as vu comment tu me prends de haut ??
 
C'est toi qui demande un truc et tu te permets de me répondre comme ca parce que je suis pas assez clair pour toi :pfff:  

stoi qui m'a fait un kiki, alors je t'ai demandé si tu te trouvais clair :o
après avoir compris ou tu voulais en venir, je t'ai expliqué que tu ne l'étais pas, et t'ai renvoyé ton kiki, voila tout :o


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610340
uriel
blood pt.2
Posté le 13-01-2004 à 13:52:40  profilanswer
 

vos gueules :o


---------------
IVG en france
n°610344
benou
Posté le 13-01-2004 à 13:54:17  profilanswer
 

ok [:ula]
 
 
 
 
 
[:kiki]


---------------
ma vie, mon oeuvre - HomePlayer
n°610362
darklord
You're welcome
Posté le 13-01-2004 à 14:02:38  profilanswer
 

retournez bosser bande de connards :o

n°610596
Gautier
Posté le 13-01-2004 à 16:37:35  profilanswer
 

Je ne peux pas comparer les deux fichiers bit à bit puisque qu'il ne sont pas sur le meme ordinateur
je vais me renseigner sur la fonction MD5, elle a l'air interessante
 
et si j'ai bien compris les fonction adler-32 et CRC32 retourne un identifiant de 32 bits, ce qui me parait insuffisant.
 
MD5, c bien 128 bits ?

n°610597
Taiche
(╯°□°)╯︵ ┻━┻
Posté le 13-01-2004 à 16:38:19  profilanswer
 

Ui.


---------------
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.
n°610617
the real m​oins moins
Posté le 13-01-2004 à 16:45:56  profilanswer
 

y'a une implementation de md5 qui passerait dans CheckedInputStream ?
 
(d'ailleurs pq ils ont mis CheckedInputStream dans java.util.zip? :heink:)


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
n°610621
uriel
blood pt.2
Posté le 13-01-2004 à 16:46:48  profilanswer
 

the real moins moins a écrit :

y'a une implementation de md5 qui passerait dans CheckedInputStream ?


 
je me posais la même question


---------------
IVG en france
n°610627
the real m​oins moins
Posté le 13-01-2004 à 16:49:13  profilanswer
 

Citation :

Anstatt new java.util.zip.Adler32 gibt's wohl auch noch eine MD5-Klasse. Aber java.util.zip.Adler32 ist angeblich schneller.

bitte[:autobot]


---------------
Hey toi, tu veux acheter des minifigurines Lego, non ?
mood
Publicité
Posté le   profilanswer
 


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

  Identificateur de fichier

 

Sujets relatifs
[VB] suppression d'un fichier sur DDCree un fichier .BAT avec une condition
Ecrire fichier dans %systemroot%[VB.net] Ouvrir un fichier Excel a un endroit spécifié.
date de derniere mise à jour d'un fichier avec une page .htmlLecture de fichier au format DVD
[PHP]Autoriser l'accés à un fichier pendant un temps précis ?[PHP]Mailto avec fichier joint
Comment charger un fichier en javascript ?Probleme pour charger un fichier...
Plus de sujets relatifs à : Identificateur de fichier


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