Accès Fichiers sous NT - Quelle méthode choisir ? - C++ - Programmation
Marsh Posté le 07-08-2002 à 14:34:24
Tout dépend ce que tu veux faire exactement; le pb si tu passe directement par l'API c que c laborieux et long à implémenter, mais une fois que c fait c fait. Le pb avec la STL c que t'as pas accés à toutes les subtilité du système de fichier.
Marsh Posté le 07-08-2002 à 19:42:42
dans mon esprit le match ne se situe pas entre l'api et la stl
mais entre l'API et les fonctions de fstream standard
voila ce ke ca donnerai en gros :
Class CFichier ( avec API win32/Nt )
{
CFichier(); // CreateFile
~CFichier(); // CloseHandle
Ecrire(); // WriteFile
Lire(); // readFile
}
ou une instance fstream
fstream fichier3; // ..... je ne sais plus exactement
pour ouvrir: fichier3.open("... sais pas" )
etc ...
la stl serai utilisée come pour lister les fichiers présent dans mon reertoire :
list <CFichier> repertoire ;
// la je ferai FindNextFile , GetDirectory machin , ki me donnera la liste des fichiers pour remplir la stl avec des .pushback(fichier2) par exemple
sur chaque element de repertoire je pourrai utiliser ecrire si classe Cfichier ou put ( ou autre chose ) si fstream
la je prends une liste , ce pourrai aussi bien etre une map
est ce ke l'un de vous pourrait m'élairer sur des points tels k'un éventuel constructeuir par recopie si je dois faire ma propre classe avec API ( puisque c nécessaire a la stl ) ou devrai je user de pointeurs....
est ce ke mon idée vous semble correcte .. ?
merci pour vos réponses et votre aide
Marsh Posté le 07-08-2002 à 21:11:11
les bons vieux open close unlink read write & cie ca roulaize; même sous win32 avec des _ devant
Marsh Posté le 07-08-2002 à 22:26:35
boborde a écrit a écrit : dans mon esprit le match ne se situe pas entre l'api et la stl mais entre l'API et les fonctions de fstream standard voila ce ke ca donnerai en gros : Class CFichier ( avec API win32/Nt ) { CFichier(); // CreateFile ~CFichier(); // CloseHandle Ecrire(); // WriteFile Lire(); // readFile } ou une instance fstream fstream fichier3; // ..... je ne sais plus exactement pour ouvrir: fichier3.open("... sais pas" ) etc ... la stl serai utilisée come pour lister les fichiers présent dans mon reertoire : list <CFichier> repertoire ; // la je ferai FindNextFile , GetDirectory machin , ki me donnera la liste des fichiers pour remplir la stl avec des .pushback(fichier2) par exemple sur chaque element de repertoire je pourrai utiliser ecrire si classe Cfichier ou put ( ou autre chose ) si fstream la je prends une liste , ce pourrai aussi bien etre une map est ce ke l'un de vous pourrait m'élairer sur des points tels k'un éventuel constructeuir par recopie si je dois faire ma propre classe avec API ( puisque c nécessaire a la stl ) ou devrai je user de pointeurs.... est ce ke mon idée vous semble correcte .. ? merci pour vos réponses et votre aide |
Bon ça déjà c les MFC pas l'API (l'API windows est en C , à par t les truc plus récents comme le COM )
En plus je crois pas qu'il y a iqqc dans la stl pour les répertoires.
Marsh Posté le 07-08-2002 à 12:33:33
Mon désir étant d' accéder à plusieurs fichiers consécutivement dans un repertoire sans doute via la STL mais bon pour l'instant
ma question est :
Pour une utilisation intensive , je préfére l'API , avec une classe maison utilisant CreateFile , ReadFile, WriteFile
ou la lib c++, avec Fstream
c dans le cadre de perf ou de compatibilité, est uniquementb dans l'esprit une classe par fichier ( ce ki semble correct ) cette classe dans une liste chainée STL correspondant elle au contenu du repertoire
Merci bcp