Bonjour,
Je suis actuellement dans une phase d'architecture d'un projet en C pour mon école et j'ai besoin d'un peu d'orientation de la part de gens expérimentés
Le principe du programme ( à réaliser en C exclusivement ) est d'effectuer la recherche des doublons de fichier et d'en supprimer un des deux, après choix de l'utilisateur ( exemple cité : téléchargement de 2 fichiers identiques dans deux endroits différents du disk dur. )
Mon problème se pose dans la commande/fonction qui va me permettre d'effectuer une recherche récursive sur l'ensemble des répertoires du disk.
J'ai parcouru le Kernigan et ritchi sans succès, ainsi qu'une bonne 50 aines de pages de cette partie du forum.
J'ai trouvé des informations sur la bibliothèque dirent.h qui à priori ne marche que pour un system linux. ( mon programme devra avant tout fonctionner sous windows, la portabilité serait un plus ).
De plus il est demandé d'intégrer la bibliothèque #include "_mingw.h" ( dans le dirent.h ) qui même une fois intégrée dans mon projet et placée dans mon répertoire de travail ( je développe sous Visual studio 2005 ), n'est pas trouvée par le compilateur.
J'ai pensé utiliser les API windows de recherche de fichier , j'ai donc parcouru le tutoriel disponible sur ce site mais cela ne m'a pas aidé. ( D'ailleurs si quelqu'un pouvait m'expliquer clairement où trouver les bibliothèques api windows, et comment les installer pour que mon compilateur VS2K5 les trouve automatiquement, cela m'aiderait grandement )
Je compte référencer l'ensemble des fichiers ( leur adresse et leur nom séparément à l'aide d'une structure ) parcourut dans un tableau puis effectuer une comparaison sur l'ensemble des données.
Je doute néanmoins de son efficacité du faite de la taille que cela va prendre en mémoire si il y a beaucoup de données, j'ai donc aussi pensé à stocker les adresses de fichier et les noms dans une base de donnée ( Oracle ou Mysql pour le sgbd ) puis effectuer ensuite une vérifications sur les doublons.
D'ailleurs plusieurs fois vous réorientez les gens vers les API gérant les bases de données mais personne ne fournit un lien vers un tutoriel OGBD par exemple expliquant clairement ( pour les néophytes ) comment interagir avec une bdd :p ( et j'en aurais bien besoin)
L'avantage de ce système est qu'une recherche "update" peut être effectuée alors que dans le cas d'un tableau il me faudrait soit refaire toute la recherche, soit stocker les infos dans un fichier, et le code pour faire une vérifications d'une donnée existante dans un fichier suivant le mot de recherche est un vrai bourbier :p
Voila, n'hésitez pas à me poser des questions si cela ne vous semble pas clair. Au fur et à mesure j'exposerai mon travail si des gens sont intéressés, de plus cela me permettra de prendre en compte vos remarques.
Sincèrement,
jb.
Partager