RESTAURATION DE FICHIERS SUPPRIMÉS SUR UN DISQUE DUR NTFS
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 2010
-
15 janv. 2009 à 01:37
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 2010
-
7 août 2009 à 18:13
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 7 août 2009 à 18:13
Mise à jour du code : Version 3.0
Il est désormais possible de récupérer le nom du dernier répertoire ayant contenu le fichier supprimé (si celui-ci est encore disponible au sein de la MFT lors de l'analyse). On peut dorénavant trier la liste et y rechercher des fichiers selon ce nouveau critère.
J'ai rédigé un dossier complet sur le processus de restauration de fichiers effacés sur un disque NTFS, qui tient lieu de documentation de ce programme. Vous pouvez le trouver sur mon site web :
http://www.ni69.info Rubrique "Ingénierie Informatique"
Dossier "Restauration logicielle de fichiers effacés sur un disque dur NTFS"
scoach
Messages postés4Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention14 février 2009 14 févr. 2009 à 22:37
alors finalement je me suis tourné vers une solution payante (Data Life Saver) qui m'a permis de tout récupérer sans trop de bobos.
certaines archives ont été altérées, mais ce logiciel m'a permis d'avoir les 9/10e des données utilisables.
merci encore pour vos conseils.
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 8 févr. 2009 à 15:28
@Mauricio :
EASEUS Deleted File Recovery 2.1.1 :
la version d'évaluation est gratuite..
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 27 janv. 2009 à 18:04
@Scoach: j' utilise EASEUS Deleted File Recovery 2.1.1 (excellent programme gratuit) mais qui a le défaut de devoir s' installer avant utilisation alors que ton appli pourrait se mettre sur une Pen ou CD.
A+
scoach
Messages postés4Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention14 février 2009 27 janv. 2009 à 16:45
c'est bien là tout mon problème: $MFT et $MFTMirr sont altérés.
J'ai trouvé une solution, mais elle est payante.
La version demo m'a bien retrouvé tout le contenu du disque mais ne permet pas de les récupérer:(
N'ayant rien trouvé au niveau freeware qui m'apporte un résultat probant, je vais donc opter pour cet achat.
Merci à tous pour l'attention que vous m'avez accordée.
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 26 janv. 2009 à 16:41
A savoir également que $MFTMirr te permet uniquement de restaurer les 4 premiers enregistrements (donc $MFT, $MftMirr, $LogFile et $Volume)
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 26 janv. 2009 à 16:32
@Scoach:
Tourne toi vers $MFTMirr si $MFT est altéré.
(Mais normalement l'OS le fait automatiquement si il détecte un problème grave avec $MFT, donc ça risque pas forcément de t'aider... C'est juste une piste)
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 23 janv. 2009 à 10:10
@scoach:
Un certain modèle de l' année derniere de marque Seagate (Barracuda je crois) de 500Go et de 1000Go a été reconnu par son fabricant comme défectueux, un firmware fut disponible mais celui-ci fut rétiré cette semaine car il ne fonctionnait pas non plus.
La bonne nouvelle quand même c' est que les données ne sont pas abîmées ... super :(
A+
scoach
Messages postés4Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention14 février 2009 23 janv. 2009 à 07:42
bonjour,
désolé pour le retard dans mes posts, mais je travaille de nuit...et là je rentre du boulot.
En fait mon problème vient (je suppose) d'une corruption de la MFT.
Mon disque de 500Go est bien détecté par le bios, mais sous mon OS (win XP Pro) il est vu avec 0 octets de capacité et 0 octets de libres.
Après avoir tenté de récupérer les données inscrites sur le disque à l'aide de plusieurs logiciels de récup, d'une part aucun ne me retrouve la totalité des fichiers qui étaient dessus, d'autre part à peine 1/3 de ce qui a été récupéré est utilisable.
Je précise enfin qu'il n'y a rien eu de réécrit dessus depuis la découverte de la panne.
Ce que je recherche, c'est une astuce afin de pouvoir "reconstruire" (si c'est faisable) la MFT afin de récupérer l'intégralité de mes fichiers.
J'espère avoir bien décrit les symptômes afin d'être compris dans ma démarche.
Sur ce, je vais me coucher..."j'émerge" vers 15H...avant de repartir au taf à 19H.
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 22 janv. 2009 à 20:18
@Scoach:
"quand c'est la MFT qui est naze" -> ça veut pas dire grand chose !
Il peut arriver des milliers de problèmes différents sur un disque...
scoach
Messages postés4Date d'inscriptionjeudi 22 janvier 2009StatutMembreDernière intervention14 février 2009 22 janv. 2009 à 19:01
bijour,
euh, ça m'a l'air bien tout ceci...mais quand c'est la MFT qui est naze, est-ce qu'on procède de la même façon?
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 20 janv. 2009 à 13:13
@Nicolas__
En gros : Sur MSDN, dans un bon bouquin sur les API Windows, et sur le site ntfs.com :)
Tout cela m'a donné le principe général de la restauration, ensuite j'ai pas mal observé mon propre disque (il n'y a rien de mieux comme exemple concret ^^)
@Pascal99 : Merci, je sais parfaitement à quoi cette date peut servir ne t'inquiète pas. Le problème n'est pas là!
Si la date peut nous être utile à nous, elle est en revanche TOTALEMENT INUTILE à l'OS ! Ce dernier n'est pas conçu pour pouvoir récupérer des fichiers comme le font les programmes de restauration...
Donc pour un OS, mettre une date sur quelque-chose, puis supprimer ce quelque-chose immédiatement après, ça me semble stupide, donc j'en déduis que ce n'est pas ce qui se passe dans la pratique.
"ListView avec MultiSelect" -> comme je l'ai déjà dit plus haut, ça attendra.
cs_pascal99
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention20 janvier 2009 20 janv. 2009 à 07:39
Bonjour,
la date et meme l'heure de suppression peuvent etre tres utile si tu sais que tu as supprime des fichiers il y a moins d'une demi-heure pour pouvoir les selectionner facilement et les ainsi les recuperer.
C'est un plus comme le repertoire d'origine et la multi-selection.
Comme ton code est bien organise, tu devrais pouvoir utiliser un ListView avec MultiSelect a true pour la muti-selection.
Bonne continuation.
Pascal99
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 19 janv. 2009 à 18:22
D'ailleurs Ni69, ou est ce que tu as trouvé tts les infos nécessaires pour réaliser ce projet ?
Developpez , Msdn , wikipedia ... ou des bouquins ?
Merci
cs_nino31
Messages postés17Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention29 avril 2013 19 janv. 2009 à 18:14
@NI69 : Merci beaucoup... Et moi qui voulais simplement un petit utilitaire pour récupérer les fichiers supprimés... Me voilà dans l'apprentissage d'un nouveau language ! En tout cas, ça à l'air très interressant. Encore merci
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 19 janv. 2009 à 16:33
@Francky23012301 : ça viendra, peut-être, plus tard... Chaque chose en son temps. Ces améliorations (comme aussi la possibilité de sélectionner plusieurs fichiers et de retrouver les répertoires d’origine) ne sont que des fioritures par rapport au reste... A mon avis, je ne les implémenterai pas avant les prochains mois (quand j’aurai du temps et que j’aurai fini mes concours d’entrée en école d’ingénieur), donc ne soyez pas trop pressés. La documentation est elle beaucoup plus importante, et j’y travaille actuellement.
@Michel34 : L'anglais étant comme une seconde langue maternelle pour moi et étant également la langue "naturelle" de presque tous les langages de programmation, j'ai pris l'habitude de l’utiliser quand je code (ça fait plus homogène en quelque sorte). De plus, le code peut ainsi être compris par un plus grand panel de gens en étant commenté en anglais... La doc que je vous prépare sera par contre en français (une version en anglais suivra certainement !). Pour répondre à ton autre question la date de dernière modification (dernière colonne) n’est pas la date de suppression du fichier, mais bien la date de dernière modification de celui-ci. Je n’ai pas trouvé (il faut dire que je n’ai pas vraiment, voire pas du tout cherché) de champ relatif à la date de la suppression (en même temps, je me demande s’il y en a un, étant donné que cela serait tout à fait inutile ! A quoi ça servirait de connaitre la date de quelque-chose qui n’existe pas pour un OS ???)
cs_nino31
Messages postés17Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention29 avril 2013 19 janv. 2009 à 15:18
Bonjour,
Etant totalement profane en delphi, j'aimerais savoir comment on lance le programme (quel fichier doit on ouvrir et avec quel programme pour lancer l'application ?)
D'avance merci
cs_Michel34
Messages postés79Date d'inscriptionsamedi 28 décembre 2002StatutMembreDernière intervention27 juin 2011 19 janv. 2009 à 11:56
Salut a tous , Tres beau programme , j'ai teste sous windows Xp SP2 ,le seul petit Hic , c'est que je suis un peu faché avec la langue de Shakespiiiiire ca n'empeche pas la programmation mais purquoi n'as tu pas francisé ton programme ?
mais mis a part ce details , j'ais trouvé le scan du disque tres rapides et j'ais ete meme surpris de trouver des fichiers effacés depuis 07/2007 encore recuperables.( enfin si j'ai bien saisi le sens de la colonne de la date de suppression du fichier).
Bravo pour ce bel exemple de programmation.
Francky23012301
Messages postés400Date d'inscriptionsamedi 6 août 2005StatutMembreDernière intervention11 février 20161 18 janv. 2009 à 13:34
Ben dis donc sacré boulot : pas tout compris moi non plus. Par contre il serait peut etre sympa de permettre de trier les résultats par nom, type de fichier, taille, date de suppression : ca serait plus facile pour naviguer ;). L'ajout d'un popupmenu serait cool aussi. Désolé pour le supplément de boulot ;).
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 17 janv. 2009 à 12:50
Effectivement il pouvait fonctionner, à condition que l'on ait élevé MANUELLEMENT les privilèges avant le démarrage. Dans le cas contraire, CreateFile() renvoyait une erreur.
Sachant que la plupart des gens n'ont pas forcément cette idée j'ai décidé de le présenter comme non fonctionnel sous Vista tant que la procédure n’était pas réalisée automatiquement... Tu remarqueras qu’avec le Manifest inclus, il n’est désormais plus possible de le démarrer avec des autorisations restreintes, ce qui était mon objectif :)
cs_pascal99
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention20 janvier 2009 17 janv. 2009 à 09:58
Ton prog (la version d'hier) fonctionnait tres bien en Vista SP1.
Si tu pouvais remonter le repertoire des fichiers supprimés ce serait génial.
a+
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 17 janv. 2009 à 01:00
Le code fonctionne à présent sur Windows Vista. Voir ma source (cf. commentaire précédent) pour les détails.
Faites très attention au mode Debug : il peut être utile pour comprendre comment fonctionne le programme, mais quand vous souhaitez restaurer un fichier en pratique il est fortement conseillé de le désactiver (j'ai d'ailleurs ajouté une confirmation d'activation dans ce sens), car des fichiers sont créés lors de l'exécution (parcours de la MFT et restauration d'un fichier), et ces fichiers peuvent sans que vous le sachiez recouvrir les fichiers que vous souhaitez retrouver (soit dans la MFT, soit aussi sur le disque lui-même!)
Une autre chose que je n'ai pas mentionnée dans la présentation du programme. Il est impossible de dire si un fichier restauré sera intègre ou non. En effet, son enregistrement dans la MFT a beau persister, si le fichier est gros, donc s'il ne peut pas directement être contenu dans son enregistrement (on parle alors de données non résidentes) alors la zone du disque qui contient son contenu peut avoir été recouverte par le contenu d'un autre fichier... D'où une corruption possible des données !
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 16 janv. 2009 à 18:24
"En gros il faudra que j'invoque une élévation de processus au démarrage du programme"
Envoie moi un courrier SVP lorsque tu auras trouvé comment faire, merci d' avance! (une bonne idée de source à déposer!)
A+
michelroc
Messages postés84Date d'inscriptionlundi 19 mai 2003StatutMembreDernière intervention 2 janvier 2010 16 janv. 2009 à 18:20
Plusieurs fichiers à restaurer ça serait cool..
Merci
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 16 janv. 2009 à 17:57
@ Nicolas__ : Merci bien ! Je pensais au départ faire quelque-chose du genre multiselect pour les fichiers, mais cela ne faisait pas partie de mes objectifs prioritaires (j'entends par là une méthode de restauration fonctionnelle d'un fichier). Mais j'y repenserai quand j'améliorerai l'interface.
@ Mauricio : Le processus de restauration de fichiers est déjà en lui-même assez complexe. Alors si en plus on doit savoir où était rangé chanque chose avant d'être supprimée... ^^ Mais c'est effectivement une piste à creuser, je me documenterai plus en profondeur là dessus ;) Pour le support de Vista, je rencontre quelques problèmes avec l'ouverture du disque en lecture (CreateFile) dus à l'UAC. En gros il faudra que j'invoque une élévation de processus au démarrage du programme. J'y travaille.
@ Bacterius : Ce qui prend du temps dans ton cas, ce n'est pas le parcours de la MFT, mais plutôt l'affichage dans le Log et sa sauvegarde sytématique. Je vais ajouter une CheckBox concernant l'affichage ou non des avertissements concernant les enregistrements invalides, et de même une autre checkbox pour le DebugMode.
@ Pascal99 : effectivement c'est une erreur de ma part, due à un copier/coller un peu hâtif ! (en fait si on regarde plus précisément, il y a quelques autres caractères qui ne correspondent pas et les deux chaînes ne sont pas de la même longueur !). Voilà le morceau de code corrigé :
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 16 janv. 2009 à 17:04
J'ai peut-être un PC de merde mais ça m'etonne qu'il n'arrive pas à itérer 10.000 procédures ... sûrement bien optimisées avec une mémoire de 512 Mo, un processeur de 1.5GHz et toutes les applications fermées (eh oui j'ai même fermé mon anti-virus et ma connexion internet pour l'occasion).
Bref, je n'ai pas eu la patience d'attendre la fin ...
Mais il faut dire qu'à chaque fois que le fichier n'est plus présent, il y a quelques messages en plus dans le log.
Enfin bref, on ne pourrait pas faire un truc pour arrêter dès qu'on en a marre de lister les fichiers, pour que ceux qui sont dans mon cas (personne à part moi ?) puissent voir un peu ?
:) Merci
Cordialement, Bacterius !
cs_pascal99
Messages postés24Date d'inscriptionmercredi 10 septembre 2003StatutMembreDernière intervention20 janvier 2009 16 janv. 2009 à 09:49
Bonjour,
beau code, pourtant dans NormalizeString le 5eme caractere de Destination ne devrait-il pas etre un C ?
N'ayant que Delphi5 sur ce PC, je n'ai pas pu tester. Je verrais ca ce soir sur mon PC perso (Delphi7).
Bonne continuation,
Pascal99
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 16 janv. 2009 à 02:04
@bacterius : deja dit , mais t'as un pc de m***** !
16/01/2009 2:00:41 | Number Of Records : 66556
16/01/2009 2:00:48 | All File Records Analyzed (66556)
...
16/01/2009 2:02:07 | Number Of Records : 101372
16/01/2009 2:02:16 | All File Records Analyzed (101372)
Moi je trouve ca bien rapide !
Nico
cs_cantador
Messages postés4720Date d'inscriptiondimanche 26 février 2006StatutModérateurDernière intervention31 juillet 202113 15 janv. 2009 à 22:29
Intéressant, mais pas beaucoup de temps en ce moment
pour regarder..
je rejoins Mauricio pour la suppression d'un dossier..
Bacterius
Messages postés3792Date d'inscriptionsamedi 22 décembre 2007StatutMembreDernière intervention 3 juin 201610 15 janv. 2009 à 18:13
cs_MAURICIO
Messages postés2106Date d'inscriptionmardi 10 décembre 2002StatutModérateurDernière intervention15 décembre 20145 15 janv. 2009 à 11:36
Salut Ni69,
je suis d' accord avec Nicolas__, bien que je n' ai pas étudié le code pour l' instant, le programme est très interessant!
J' utilise EASEUS Deleted File Recovery 2.1.1 (excellent programme) mais qui a le défaut de devoir s' installer avant utilisation alors que ton appli pourrait se mettre sur une Pen ou CD.
Je suggère aussi la possibilité de récupérer tous les fichiers d' un répertoire lorsque l' on a éliminé ce dernier par erreur.
Je reviendrai vers ce post lorsque tu auras implémenté la compatibilité avec Vista vu que je n' ai pas XP...
A+
Nicolas___
Messages postés992Date d'inscriptionjeudi 2 novembre 2000StatutMembreDernière intervention24 avril 20131 15 janv. 2009 à 02:01
C'est une réelle aubaine d'avoir des gens aussi doué sur DelphiFR...
Je n'ai pas encore regardé le code
(bien que je n'y comprendrais certainement pas grand chose ) mais j'ai déjà testé ton programme (qui va plus vite que certain disponible sur internet) et c'est une merveille !
Par contre (juste pour chipoter) , tu devrais donner la possibilité de selectionner plusieurs fichiers à restaurer ...
Merci pour ce code source
Nico
ni69
Messages postés1418Date d'inscriptionsamedi 12 juin 2004StatutMembreDernière intervention 5 juillet 201012 15 janv. 2009 à 01:37
Il y a pour l'instant une erreur lors de l'ouverture du disque en lecture sous Windows Vista, ce qui rend le programme incompatible avec cette version de Windows.
Je tâcherai de remédier à cela.
7 août 2009 à 18:13
Il est désormais possible de récupérer le nom du dernier répertoire ayant contenu le fichier supprimé (si celui-ci est encore disponible au sein de la MFT lors de l'analyse). On peut dorénavant trier la liste et y rechercher des fichiers selon ce nouveau critère.
J'ai rédigé un dossier complet sur le processus de restauration de fichiers effacés sur un disque NTFS, qui tient lieu de documentation de ce programme. Vous pouvez le trouver sur mon site web :
http://www.ni69.info
Rubrique "Ingénierie Informatique"
Dossier "Restauration logicielle de fichiers effacés sur un disque dur NTFS"
14 févr. 2009 à 22:37
certaines archives ont été altérées, mais ce logiciel m'a permis d'avoir les 9/10e des données utilisables.
merci encore pour vos conseils.
8 févr. 2009 à 15:28
EASEUS Deleted File Recovery 2.1.1 :
la version d'évaluation est gratuite..
27 janv. 2009 à 18:04
A+
27 janv. 2009 à 16:45
J'ai trouvé une solution, mais elle est payante.
La version demo m'a bien retrouvé tout le contenu du disque mais ne permet pas de les récupérer:(
N'ayant rien trouvé au niveau freeware qui m'apporte un résultat probant, je vais donc opter pour cet achat.
Merci à tous pour l'attention que vous m'avez accordée.
26 janv. 2009 à 16:41
26 janv. 2009 à 16:32
Tourne toi vers $MFTMirr si $MFT est altéré.
(Mais normalement l'OS le fait automatiquement si il détecte un problème grave avec $MFT, donc ça risque pas forcément de t'aider... C'est juste une piste)
23 janv. 2009 à 10:10
Un certain modèle de l' année derniere de marque Seagate (Barracuda je crois) de 500Go et de 1000Go a été reconnu par son fabricant comme défectueux, un firmware fut disponible mais celui-ci fut rétiré cette semaine car il ne fonctionnait pas non plus.
La bonne nouvelle quand même c' est que les données ne sont pas abîmées ... super :(
A+
23 janv. 2009 à 07:42
désolé pour le retard dans mes posts, mais je travaille de nuit...et là je rentre du boulot.
En fait mon problème vient (je suppose) d'une corruption de la MFT.
Mon disque de 500Go est bien détecté par le bios, mais sous mon OS (win XP Pro) il est vu avec 0 octets de capacité et 0 octets de libres.
Après avoir tenté de récupérer les données inscrites sur le disque à l'aide de plusieurs logiciels de récup, d'une part aucun ne me retrouve la totalité des fichiers qui étaient dessus, d'autre part à peine 1/3 de ce qui a été récupéré est utilisable.
Je précise enfin qu'il n'y a rien eu de réécrit dessus depuis la découverte de la panne.
Ce que je recherche, c'est une astuce afin de pouvoir "reconstruire" (si c'est faisable) la MFT afin de récupérer l'intégralité de mes fichiers.
J'espère avoir bien décrit les symptômes afin d'être compris dans ma démarche.
Sur ce, je vais me coucher..."j'émerge" vers 15H...avant de repartir au taf à 19H.
22 janv. 2009 à 20:18
"quand c'est la MFT qui est naze" -> ça veut pas dire grand chose !
Il peut arriver des milliers de problèmes différents sur un disque...
22 janv. 2009 à 19:01
euh, ça m'a l'air bien tout ceci...mais quand c'est la MFT qui est naze, est-ce qu'on procède de la même façon?
20 janv. 2009 à 13:13
En gros : Sur MSDN, dans un bon bouquin sur les API Windows, et sur le site ntfs.com :)
Tout cela m'a donné le principe général de la restauration, ensuite j'ai pas mal observé mon propre disque (il n'y a rien de mieux comme exemple concret ^^)
@Pascal99 : Merci, je sais parfaitement à quoi cette date peut servir ne t'inquiète pas. Le problème n'est pas là!
Si la date peut nous être utile à nous, elle est en revanche TOTALEMENT INUTILE à l'OS ! Ce dernier n'est pas conçu pour pouvoir récupérer des fichiers comme le font les programmes de restauration...
Donc pour un OS, mettre une date sur quelque-chose, puis supprimer ce quelque-chose immédiatement après, ça me semble stupide, donc j'en déduis que ce n'est pas ce qui se passe dans la pratique.
"ListView avec MultiSelect" -> comme je l'ai déjà dit plus haut, ça attendra.
20 janv. 2009 à 07:39
la date et meme l'heure de suppression peuvent etre tres utile si tu sais que tu as supprime des fichiers il y a moins d'une demi-heure pour pouvoir les selectionner facilement et les ainsi les recuperer.
C'est un plus comme le repertoire d'origine et la multi-selection.
Comme ton code est bien organise, tu devrais pouvoir utiliser un ListView avec MultiSelect a true pour la muti-selection.
Bonne continuation.
Pascal99
19 janv. 2009 à 18:22
Developpez , Msdn , wikipedia ... ou des bouquins ?
Merci
19 janv. 2009 à 18:14
19 janv. 2009 à 16:33
@Michel34 : L'anglais étant comme une seconde langue maternelle pour moi et étant également la langue "naturelle" de presque tous les langages de programmation, j'ai pris l'habitude de l’utiliser quand je code (ça fait plus homogène en quelque sorte). De plus, le code peut ainsi être compris par un plus grand panel de gens en étant commenté en anglais... La doc que je vous prépare sera par contre en français (une version en anglais suivra certainement !). Pour répondre à ton autre question la date de dernière modification (dernière colonne) n’est pas la date de suppression du fichier, mais bien la date de dernière modification de celui-ci. Je n’ai pas trouvé (il faut dire que je n’ai pas vraiment, voire pas du tout cherché) de champ relatif à la date de la suppression (en même temps, je me demande s’il y en a un, étant donné que cela serait tout à fait inutile ! A quoi ça servirait de connaitre la date de quelque-chose qui n’existe pas pour un OS ???)
@Nino31 : Vas voir là : http://fbeaulieu.developpez.com/guide/
19 janv. 2009 à 15:18
Etant totalement profane en delphi, j'aimerais savoir comment on lance le programme (quel fichier doit on ouvrir et avec quel programme pour lancer l'application ?)
D'avance merci
19 janv. 2009 à 11:56
mais mis a part ce details , j'ais trouvé le scan du disque tres rapides et j'ais ete meme surpris de trouver des fichiers effacés depuis 07/2007 encore recuperables.( enfin si j'ai bien saisi le sens de la colonne de la date de suppression du fichier).
Bravo pour ce bel exemple de programmation.
18 janv. 2009 à 13:34
17 janv. 2009 à 12:50
Sachant que la plupart des gens n'ont pas forcément cette idée j'ai décidé de le présenter comme non fonctionnel sous Vista tant que la procédure n’était pas réalisée automatiquement... Tu remarqueras qu’avec le Manifest inclus, il n’est désormais plus possible de le démarrer avec des autorisations restreintes, ce qui était mon objectif :)
17 janv. 2009 à 09:58
Si tu pouvais remonter le repertoire des fichiers supprimés ce serait génial.
a+
17 janv. 2009 à 01:00
Faites très attention au mode Debug : il peut être utile pour comprendre comment fonctionne le programme, mais quand vous souhaitez restaurer un fichier en pratique il est fortement conseillé de le désactiver (j'ai d'ailleurs ajouté une confirmation d'activation dans ce sens), car des fichiers sont créés lors de l'exécution (parcours de la MFT et restauration d'un fichier), et ces fichiers peuvent sans que vous le sachiez recouvrir les fichiers que vous souhaitez retrouver (soit dans la MFT, soit aussi sur le disque lui-même!)
Une autre chose que je n'ai pas mentionnée dans la présentation du programme. Il est impossible de dire si un fichier restauré sera intègre ou non. En effet, son enregistrement dans la MFT a beau persister, si le fichier est gros, donc s'il ne peut pas directement être contenu dans son enregistrement (on parle alors de données non résidentes) alors la zone du disque qui contient son contenu peut avoir été recouverte par le contenu d'un autre fichier... D'où une corruption possible des données !
16 janv. 2009 à 18:24
Envoie moi un courrier SVP lorsque tu auras trouvé comment faire, merci d' avance! (une bonne idée de source à déposer!)
A+
16 janv. 2009 à 18:20
Merci
16 janv. 2009 à 17:57
@ Mauricio : Le processus de restauration de fichiers est déjà en lui-même assez complexe. Alors si en plus on doit savoir où était rangé chanque chose avant d'être supprimée... ^^ Mais c'est effectivement une piste à creuser, je me documenterai plus en profondeur là dessus ;) Pour le support de Vista, je rencontre quelques problèmes avec l'ouverture du disque en lecture (CreateFile) dus à l'UAC. En gros il faudra que j'invoque une élévation de processus au démarrage du programme. J'y travaille.
@ Bacterius : Ce qui prend du temps dans ton cas, ce n'est pas le parcours de la MFT, mais plutôt l'affichage dans le Log et sa sauvegarde sytématique. Je vais ajouter une CheckBox concernant l'affichage ou non des avertissements concernant les enregistrements invalides, et de même une autre checkbox pour le DebugMode.
@ Pascal99 : effectivement c'est une erreur de ma part, due à un copier/coller un peu hâtif ! (en fait si on regarde plus précisément, il y a quelques autres caractères qui ne correspondent pas et les deux chaînes ne sont pas de la même longueur !). Voilà le morceau de code corrigé :
const
Destination = 'AAAACEEEEIIIOOOUUUYAAAAAEEEEIIIOOOOOUUUUY';
16 janv. 2009 à 17:04
Bref, je n'ai pas eu la patience d'attendre la fin ...
Mais il faut dire qu'à chaque fois que le fichier n'est plus présent, il y a quelques messages en plus dans le log.
Enfin bref, on ne pourrait pas faire un truc pour arrêter dès qu'on en a marre de lister les fichiers, pour que ceux qui sont dans mon cas (personne à part moi ?) puissent voir un peu ?
:) Merci
Cordialement, Bacterius !
16 janv. 2009 à 09:49
beau code, pourtant dans NormalizeString le 5eme caractere de Destination ne devrait-il pas etre un C ?
N'ayant que Delphi5 sur ce PC, je n'ai pas pu tester. Je verrais ca ce soir sur mon PC perso (Delphi7).
Bonne continuation,
Pascal99
16 janv. 2009 à 02:04
16/01/2009 2:00:41 | Number Of Records : 66556
16/01/2009 2:00:48 | All File Records Analyzed (66556)
...
16/01/2009 2:02:07 | Number Of Records : 101372
16/01/2009 2:02:16 | All File Records Analyzed (101372)
Moi je trouve ca bien rapide !
Nico
15 janv. 2009 à 22:29
pour regarder..
je rejoins Mauricio pour la suppression d'un dossier..
15 janv. 2009 à 18:13
J'y suis pour ... 4 heures ? :'(
Cordialement, Bacterius !
15 janv. 2009 à 11:36
je suis d' accord avec Nicolas__, bien que je n' ai pas étudié le code pour l' instant, le programme est très interessant!
J' utilise EASEUS Deleted File Recovery 2.1.1 (excellent programme) mais qui a le défaut de devoir s' installer avant utilisation alors que ton appli pourrait se mettre sur une Pen ou CD.
Je suggère aussi la possibilité de récupérer tous les fichiers d' un répertoire lorsque l' on a éliminé ce dernier par erreur.
Je reviendrai vers ce post lorsque tu auras implémenté la compatibilité avec Vista vu que je n' ai pas XP...
A+
15 janv. 2009 à 02:01
Je n'ai pas encore regardé le code
(bien que je n'y comprendrais certainement pas grand chose ) mais j'ai déjà testé ton programme (qui va plus vite que certain disponible sur internet) et c'est une merveille !
Par contre (juste pour chipoter) , tu devrais donner la possibilité de selectionner plusieurs fichiers à restaurer ...
Merci pour ce code source
Nico
15 janv. 2009 à 01:37
Je tâcherai de remédier à cela.