2010-11-18 5 views
0

J'ai développé un algorithme C++ qui sauvegarde le contenu d'une clé USB dans une base de données. Dans la base de données, ainsi que sauvegarder les noms de fichiers sont enregistrés sur les informations de périphérique USB: blocs et fournisseurs gratuits. Donc, quand je mets plus de touches de contrôle des blocs libres. Si la comparaison devait changer, la base de données doit être recréée. Donc, si je supprime ou ajoute des fichiers à la clé USB, la base de données est entièrement reconstruite. Mais quand je renommer un fichier, rien ne se passe. Vous pouvez trouver les changements sans avoir à vérifier chaque fichier dans la base de données?Vérification du contenu USB

Comment puis-je mieux contrôler tout le contenu d'un périphérique USB? De l'aide!

Merci!

P.s .: J'ai utilisé ioctl pour le nom du vendeur et des blocs gratuits !!

Répondre

0

Vous pouvez créer une valeur de hachage à partir de la liste des fichiers de dossiers et la stocker dans votre base de données.

Chaque fois que la clé USB est insérée, effectuez le calcul du hachage de la liste de dossiers et comparez-la à la valeur enregistrée. Si elles sont différentes, vous pouvez supposer que les fichiers ont été supprimés, ajoutés ou renommés et effectuer une actualisation de votre base de données.

0

Si vous contrôlez le système d'exploitation et la clé USB, vous pouvez utiliser NTFS. Il a une fonction de journal des modifications. Cela contient un numéro de séquence de mise à jour (USN). Tout changement à la clé va changer le USN. Ainsi, vous avez seulement besoin de sauvegarder l'ancienne valeur dans votre base de données. Si vous voyez une nouvelle valeur, relisez l'intégralité du système de fichiers et mettez à jour le nom USN dans votre base de données.

Questions connexes