Linux - C/C++ isFile/isDir Methode
Zum evaluieren ob ein gegebener Pfad eine Datei oder ein Ordner ist können folgende Methoden benutzt werden:
Für die Prüfung auf eine Datei:
#include <sys/types.h>
#include <sys/stat.h>
bool IsFile(const char* pcPath)
{
bool bRet = false;
struct stat oStat;
if( 0 == stat(pcPath, &oStat))
{
if(S_ISREG(oStat.st_mode))
bRet = true;
}
return bRet;
}
Sollte S_ISREG nicht existieren kann das wie folgt behoben werden:
#if !defined(S_ISREG) && defined(S_IFMT) && defined(S_IFREG)
#define S_ISREG(m) (((m) & S_IFMT) == S_IFREG)
#endif
Für die Prüfung auf einen Ordner:
#include <sys/types.h>
#include <sys/stat.h>
bool IsDir(const char* pcPath)
{
bool bRet = false;
struct stat oStat;
if( 0 == stat(pcPath, &oStat))
{
if(S_ISDIR(oStat.st_mode))
bRet = true;
}
return bRet;
}