filesystem
#include <iostream>
#include <dirent.h>
#include <sys/stat.h>
using namespace std;
bool isdir(const char * filename) {
struct stat *buffer;
stat(filename, buffer);
if(S_ISDIR(buffer->st_mode) == 1) {
return true;
} else {
return false;
}
}
int listdir(const char * dirname) {
DIR *directory;
struct dirent *dirStruct;
directory = opendir(dirname);
while(dirStruct = readdir(directory)) {
if(isdir(dirStruct->d_name)) {
cout << dirStruct->d_name << "\n";
}
}
closedir(directory);
}
int main() {
listdir("C:/");
while(true);
}
I get a runtime error at if(isdir(dirStruct->d_name)) but it works fine if I put isdir("C:/"); or any other directory name it returns true, any files return false.?

