Je voudrais vérifier si un répertoire donné existe. Je sais comment le faire sous Windows :
BOOL DirectoryExists(LPCTSTR szPath)
{
DWORD dwAttrib = GetFileAttributes(szPath);
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
et Linux :
DIR* dir = opendir("mydir");
if (dir)
{
/* Directory exists. */
closedir(dir);
}
else if (ENOENT == errno)
{
/* Directory does not exist. */
}
else
{
/* opendir() failed for some other reason. */
}
Mais j'ai besoin d'un moyen portable pour le faire Existe-t-il un moyen de vérifier si un répertoire existe quel que soit le système d'exploitation que j'utilise ? Peut-être la bibliothèque standard C ?
Je sais que je peux utiliser les directives des préprocesseurs et appeler ces fonctions sur différents systèmes d'exploitation, mais ce n'est pas la solution que je recherche.
JE ME RETROUVE AVEC CECI, DU MOINS POUR L'INSTANT :
#include <sys/types.h>
#include <sys/stat.h>
#include <stdio.h>
#include <stdlib.h>
int dirExists(const char *path)
{
struct stat info;
if(stat( path, &info ) != 0)
return 0;
else if(info.st_mode & S_IFDIR)
return 1;
else
return 0;
}
int main(int argc, char **argv)
{
const char *path = "./TEST/";
printf("%d\n", dirExists(path));
return 0;
}