Vorrei verificare se esiste una directory specifica. So come fare questo su Windows:Modo portatile per verificare se la directory esiste [Windows/Linux, C]
BOOL DirectoryExists(LPCTSTR szPath)
{
DWORD dwAttrib = GetFileAttributes(szPath);
return (dwAttrib != INVALID_FILE_ATTRIBUTES &&
(dwAttrib & FILE_ATTRIBUTE_DIRECTORY));
}
e 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. */
}
Ma ho bisogno di un modo di fare questo portatile .. C'è un modo per verificare se esiste una directory non importa quale Sistema operativo sto usando? Forse la libreria standard C?
So che posso utilizzare le direttive dei preprocessori e chiamare tali funzioni su sistemi operativi diversi ma questa non è la soluzione che sto chiedendo.
io alla fine con questo, almeno per ora:
#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;
}
che ne dite di semplicemente cercando di creare un file (con un nome a caso) in esso? – stijn