Je développe un programme qui, notamment,doit permettre d'ouvrir ou
d'enregistrer des fichiers dans une arborescence qu'il a créée.
Je débute en C++, je ne sais donc pas trop comment m'y prendre. J'ai déjà
réussi à gérer les fichiers (fichier éxiste ? si non créer, si oui
écraser), et je cherche maintenant à gérer des répertoires (éxiste ?| créer
| suprimer).
Il me faut préciser que je développe sous windows ( j'ai aussi envoyé ce
message sur fr.comp.os.ms-windows.programation).
Pour résumer, je recherche de la documentation, ou un tuto, ou un bout de
code éxistant, permettant cette gestion de répertoire.
Toutes les idées seront les bienvenues...
aucune gestion portable des répertoires en C++ (un système pourrait très bien NE PAS avoir de répertoires...) Sous Windows tu peux utiliser, avec borland C++, les fonctions de l'en-tete
dir.h comme mkdir (créer un dossier) etc... Il existe aussi (HS ici) les API Win32 de gestion de dossiers (voir SDK Win32). Merci de ta réponse.
En l'occurrence, je dev sous VC++ 6. Le fichier entête dir.h n'y éxiste pas. Crois-tu qu'il serait possible de le récupérer et de l'intégrer à mon environnement ?
aucune gestion portable des répertoires en C++ (un système pourrait très
bien NE PAS avoir de répertoires...)
Sous Windows tu peux utiliser, avec borland C++, les fonctions de
l'en-tete
dir.h comme mkdir (créer un dossier) etc...
Il existe aussi (HS ici) les API Win32 de gestion de dossiers (voir SDK
Win32).
Merci de ta réponse.
En l'occurrence, je dev sous VC++ 6. Le fichier entête dir.h n'y éxiste pas.
Crois-tu qu'il serait possible de le récupérer et de l'intégrer à mon
environnement ?
aucune gestion portable des répertoires en C++ (un système pourrait très bien NE PAS avoir de répertoires...) Sous Windows tu peux utiliser, avec borland C++, les fonctions de l'en-tete
dir.h comme mkdir (créer un dossier) etc... Il existe aussi (HS ici) les API Win32 de gestion de dossiers (voir SDK Win32). Merci de ta réponse.
En l'occurrence, je dev sous VC++ 6. Le fichier entête dir.h n'y éxiste pas. Crois-tu qu'il serait possible de le récupérer et de l'intégrer à mon environnement ?
Pierre Maurette
"Nicolas ROBERT" typa:
aucune gestion portable des répertoires en C++ (un système pourrait très bien NE PAS avoir de répertoires...) Sous Windows tu peux utiliser, avec borland C++, les fonctions de l'en-tete
dir.h comme mkdir (créer un dossier) etc... Il existe aussi (HS ici) les API Win32 de gestion de dossiers (voir SDK Win32). Merci de ta réponse.
En l'occurrence, je dev sous VC++ 6. Le fichier entête dir.h n'y éxiste pas. Crois-tu qu'il serait possible de le récupérer et de l'intégrer à mon environnement ? Sous VC++ 6, c'est la famille _findfirst(), _findnext() et
_findclose(), vous devez inclure io.h. Vous pouvez également utiliser les API FindFirstFile(), FindFirstFileEx(),FindNextFile(), FindClose(), etc. La façon de travailler est à à peu près la même avec les deux groupes. La findfirst renvoie un identificateur (handle) qui permet de bosser avec les findnext et findclose. Les findfirst et findnext prennent en argument une chaine comme "*.*" par exemple, et une structure appartenant à l'appelant. Cette structure vous permet de "tout" savoir sur ce qui a été trouvé, nom, attributs, s'il s'agit d'un répertoire ou d'un fichier (important). Vous serez certainement amené à écrire une routine permettant de parcourir toute l'arbrescence contenue dans un répertoire par appel récursif. Les fonctions de répertoire ne PEUVENT être standard en C ou C++ (les fonctions citées sont plutôt du C). Avec la première série, vous facilitez un portage éventuel vers d'autres OS. Avec la seconde, le portage est trivial, ou au moins facile, si vous restez sous Windows, même vers d'autres langages que C ou C++. Enfin, certaines bibliothèques propriétaires comme la VCL Borland en proposent une version (plus C++). C'est une encapsulation des API Windows d'utilisation agréable, surtout en addition de routines de gestion de noms de fichiers par exemple. Plus portable du tout ... Je ne connais pas ce que propose VC++6.
Si vous avez installé le MSDN Library en même temps que VS6, vous avez tout sous la main. Sinon, faut chasser la doc. -- Pierre
aucune gestion portable des répertoires en C++ (un système pourrait très
bien NE PAS avoir de répertoires...)
Sous Windows tu peux utiliser, avec borland C++, les fonctions de
l'en-tete
dir.h comme mkdir (créer un dossier) etc...
Il existe aussi (HS ici) les API Win32 de gestion de dossiers (voir SDK
Win32).
Merci de ta réponse.
En l'occurrence, je dev sous VC++ 6. Le fichier entête dir.h n'y éxiste pas.
Crois-tu qu'il serait possible de le récupérer et de l'intégrer à mon
environnement ?
Sous VC++ 6, c'est la famille _findfirst(), _findnext() et
_findclose(), vous devez inclure io.h.
Vous pouvez également utiliser les API FindFirstFile(),
FindFirstFileEx(),FindNextFile(), FindClose(), etc.
La façon de travailler est à à peu près la même avec les deux groupes.
La findfirst renvoie un identificateur (handle) qui permet de bosser
avec les findnext et findclose. Les findfirst et findnext prennent en
argument une chaine comme "*.*" par exemple, et une structure
appartenant à l'appelant. Cette structure vous permet de "tout" savoir
sur ce qui a été trouvé, nom, attributs, s'il s'agit d'un répertoire
ou d'un fichier (important).
Vous serez certainement amené à écrire une routine permettant de
parcourir toute l'arbrescence contenue dans un répertoire par appel
récursif.
Les fonctions de répertoire ne PEUVENT être standard en C ou C++ (les
fonctions citées sont plutôt du C). Avec la première série, vous
facilitez un portage éventuel vers d'autres OS. Avec la seconde, le
portage est trivial, ou au moins facile, si vous restez sous Windows,
même vers d'autres langages que C ou C++.
Enfin, certaines bibliothèques propriétaires comme la VCL Borland en
proposent une version (plus C++). C'est une encapsulation des API
Windows d'utilisation agréable, surtout en addition de routines de
gestion de noms de fichiers par exemple. Plus portable du tout ... Je
ne connais pas ce que propose VC++6.
Si vous avez installé le MSDN Library en même temps que VS6, vous avez
tout sous la main. Sinon, faut chasser la doc.
--
Pierre
aucune gestion portable des répertoires en C++ (un système pourrait très bien NE PAS avoir de répertoires...) Sous Windows tu peux utiliser, avec borland C++, les fonctions de l'en-tete
dir.h comme mkdir (créer un dossier) etc... Il existe aussi (HS ici) les API Win32 de gestion de dossiers (voir SDK Win32). Merci de ta réponse.
En l'occurrence, je dev sous VC++ 6. Le fichier entête dir.h n'y éxiste pas. Crois-tu qu'il serait possible de le récupérer et de l'intégrer à mon environnement ? Sous VC++ 6, c'est la famille _findfirst(), _findnext() et
_findclose(), vous devez inclure io.h. Vous pouvez également utiliser les API FindFirstFile(), FindFirstFileEx(),FindNextFile(), FindClose(), etc. La façon de travailler est à à peu près la même avec les deux groupes. La findfirst renvoie un identificateur (handle) qui permet de bosser avec les findnext et findclose. Les findfirst et findnext prennent en argument une chaine comme "*.*" par exemple, et une structure appartenant à l'appelant. Cette structure vous permet de "tout" savoir sur ce qui a été trouvé, nom, attributs, s'il s'agit d'un répertoire ou d'un fichier (important). Vous serez certainement amené à écrire une routine permettant de parcourir toute l'arbrescence contenue dans un répertoire par appel récursif. Les fonctions de répertoire ne PEUVENT être standard en C ou C++ (les fonctions citées sont plutôt du C). Avec la première série, vous facilitez un portage éventuel vers d'autres OS. Avec la seconde, le portage est trivial, ou au moins facile, si vous restez sous Windows, même vers d'autres langages que C ou C++. Enfin, certaines bibliothèques propriétaires comme la VCL Borland en proposent une version (plus C++). C'est une encapsulation des API Windows d'utilisation agréable, surtout en addition de routines de gestion de noms de fichiers par exemple. Plus portable du tout ... Je ne connais pas ce que propose VC++6.
Si vous avez installé le MSDN Library en même temps que VS6, vous avez tout sous la main. Sinon, faut chasser la doc. -- Pierre
Christophe de VIENNE
Nicolas ROBERT wrote:
Merci quand même à Fabien Le Lez et Christophe de Vienne ( christophe, une simple vérification sur le news windows t'aurais permis de vérifer qu'effectivement, je n'avais PAS fait de multipostage).
En effet, toutes mes excuses.
A+
Christophe
-- Christophe de Vienne
Nicolas ROBERT wrote:
Merci quand même à Fabien Le Lez et Christophe de Vienne ( christophe, une
simple vérification sur le news windows t'aurais permis de vérifer
qu'effectivement, je n'avais PAS fait de multipostage).
Merci quand même à Fabien Le Lez et Christophe de Vienne ( christophe, une simple vérification sur le news windows t'aurais permis de vérifer qu'effectivement, je n'avais PAS fait de multipostage).