00001 /*! \file SurcoucheRepertoire.h 00002 \brief Surcouche pour reperoire. 00003 00004 Redéfinie tout un tas de fonctions système pour les rendre portables unix et windows. 00005 00006 \author aerith (www.aerith.fr) 00007 \version 1.0 00008 \date 01/11/2007 00009 */ 00010 00011 #ifndef INCLUDE_RSRC_PORTAGE_REPERTOIRE 00012 #define INCLUDE_RSRC_PORTAGE_REPERTOIRE 00013 00014 #include <string.h> 00015 #include <malloc.h> 00016 00017 #ifdef WIN32 00018 #include <windows.h> 00019 00020 typedef HANDLE DIRECTORY; 00021 #else 00022 #include <sys/types.h> 00023 #include <dirent.h> 00024 #include <sys/stat.h> 00025 #include <unistd.h> 00026 00027 typedef DIR * DIRECTORY; 00028 #endif 00029 00030 00031 //! Ouvre un dossier 00032 /*! Ouvre un dossier pour l'explorer et recupère la première donnée. 00033 \param pDirName nom du dossier 00034 \param pFirstData nom de la première donnée du repertoire 00035 \param pIsFile seras mi à 1 si \a pFirstData est un fichier, sinon 0 00036 \return 0 si reussi, sinon 1. 00037 \sa DirClose(), DirGetNext(), DirCreate() et DirDelete() 00038 */ 00039 DIRECTORY DirOpen(char *pDirName, char *pFirstData, int *pIsFile); 00040 00041 //! Ferme un dossier 00042 /*! Ferme un dossier explorer. 00043 \param pDir pointeur sur dossier 00044 \return 0 si reussi, sinon 1. 00045 \sa DirOpen(), DirGetNext(), DirCreate() et DirDelete() 00046 */ 00047 int DirClose(DIRECTORY *pDir); 00048 00049 //! Récupère une donnée d'un dossier 00050 /*! Récupère la donnée suivante d'un dossier. 00051 \param pDir pointeur sur dossier 00052 \param pNextData nom de la donnée suivante du repertoire 00053 \param pIsFile seras mi à 1 si \a pNextData est un fichier, sinon 0 00054 \return 0 si reussi, sinon 1. 00055 \sa DirOpen(), DirClose(), DirCreate() et DirDelete() 00056 */ 00057 int DirGetNext(DIRECTORY *pDir, char *pNextData, int *pIsFile); 00058 00059 //! Crée un repertoire 00060 /*! Crée un repertoire via l'os. 00061 \param pName nom du repertoire (relatif ou absolu) 00062 \return 0 si reussi, sinon 1. 00063 \sa DirOpen(), DirClose(), DirGetNext() et DirDelete() 00064 */ 00065 int DirCreate(char *pName); 00066 00067 //! Supprime un repertoire 00068 /*! Supprime un repertoire vide via l'os. 00069 \param pName nom du repertoire (relatif ou absolu) 00070 \return 0 si reussi, sinon 1. 00071 \sa DirOpen(), DirClose(), DirGetNext() et DirCreate() 00072 */ 00073 int DirDelete(char *pName); 00074 00075 #endif 00076