Bonjour,
je cherche un moyen pour vérifier si des fichiers sont corrompus(de type pdf, doc, rtf, xls,txt)?
J'ai essayé via un FileOpen() mais il n'est pas possible d'ouvrir les fichiers autre que les txt.
Quelqu'un a une idée?
Bonjour,
je cherche un moyen pour vérifier si des fichiers sont corrompus(de type pdf, doc, rtf, xls,txt)?
J'ai essayé via un FileOpen() mais il n'est pas possible d'ouvrir les fichiers autre que les txt.
Quelqu'un a une idée?
Salut,
D'après ton affirmation sur le FileOpen j'ai l'impression que tu n'as aucune idée de ce qu'est un fichier
En fait, l'extension n'a de pas de réelle signification. Les développeurs s'en servent pour savoir comment interpréter les données (bien qu'il ne s'agit pas d'un moyen très fiable).
Quel que soit le fichier, quelle que soit son extension, un fichier contient uniquement des octets binaires.
Ce qui fait qu'un txt donne du texte et qu'un bmp donne une image ce n'est que la façon d'interpréter les données.
Par exemple, pour du txt, on associe une lettre à un nombre, ensuite quand on lit un nombre dans le fichier, par exemple 65, on sait qu'il s'agit de la lettre A.
Cette interprétation est implicite et tu n'as donc pas à la faire.
Pour un bmp on associe un groupe d'octet à des valeurs de bleu, de rouge et de vert (le mélange donnant la couleurs que l'on souhaite) pour un pixel donné. L'ordre de ces groupe d'octet donne l'ordre des pixel.
Cette interprétation est faite par System.Drawing.Bitmap.
Le RTF est du texte balisé, tu pourra donc l'ouvrir, de plus un contrôle RichTextBox va te permettre de l'afficher.
Par contre, pour toutes les autres, c'est à toi d'écrire l'interprétation ou d'utiliser une bibliothèque qui le fait pour toi.
Déjà, FileOpen ça n'existe même pas en C#... Il y a StreamReader (qui sert effectivement à lire des fichiers texte) et FileStream (pour n'importe quel type de fichier)
Il n'y a pas de moyen générique pour vérifier qu'un fichier est corrompu, il faut au moins avoir une information de référence, par exemple un hash MD5 ou SHA1.
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
MD5 et SHA1 est utilise pour verifier si on a telecharger ou copier le fichier correctement (comparrer deux fichiers pour verifier si ils sont identique )!!!!tomlev
Il n'y a pas de moyen générique pour vérifier qu'un fichier est corrompu, il faut au moins avoir une information de référence, par exemple un hash MD5 ou SHA1.
exactement tomlev ,mais il existe File.open qui retourne un Filestream sur ce fichier, mais je pense pas que il sert a quelque chose pour ton probleme. puisque ce stream peut lire le fichier en txt si il est de type text ou binaire si il n'est pas de type text(avec l'utilisation d'un stream pour lire le FileStream).Déjà, FileOpen ça n'existe même pas en C#.
Si tu aimes ma Réponse pense à cliquer sur
Visiter mon blogEt mes codes sources
- La simulation de navigation dans internet explorer avec Interop.SHDocVw
- Protéger mes données de configuration dans une dll compilée
Ben non... un hash MD5 fait 128 bits, ça peut pas suffire à représenter tous les fichiers possibles et imaginables. Même si c'est assez rare, il peut y avoir des collisions (i.e. 2 fichiers différents avec le même hash), donc c'est pas un critère suffisant pour vérifier si 2 fichiers sont identiques. En revanche, si le hash est différent, tu peux être sûr que les fichiers sont différents...
J'ai rien compris à ta phrase
"un stream pour lire le FileStream" ? Un FileStream est déjà un stream, pourquoi tu veux un stream pour le lire ?
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
--->exactement tomlev ,mais il existe File.open qui retourne un Filestream sur ce fichier, mais je pense pas que il sert a quelque chose pour ton probleme. puisque ce stream peut lire le fichier en txt si il est de type text ou binaire si il n'est pas de type text(avec l'utilisation d'un stream pour lire le FileStream).
ce stream peut lire le fichier d'une maniere binaire mais si tu veux lire ton fichier en txt (lire les caracteres ) vous avez besoin d'un stream
je ssi bien que
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 StreamReader SR1 = new StreamReader(File.Open(path, FileMode.Open));
il suffit pour lire un fichier . mais si vous avez un FileStream et tu vx lire le fichier en binaire la vous avez besoin de SR1 .
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 StreamReader SR2 = new StreamReader(path);
j'espere que je suis assez claire . et encore desolé tomlev
et merci pour l'information.
moi ,j'ai utilise le MD5 pour verifier que les fichiers que telecharges et les fichiers que je cope sont identiques (il n' a pas de erreur de telechargement )
Si tu aimes ma Réponse pense à cliquer sur
Visiter mon blogEt mes codes sources
- La simulation de navigation dans internet explorer avec Interop.SHDocVw
- Protéger mes données de configuration dans une dll compilée
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager