How to open directory and check for errors in C

1 Answer

0 votes
#include <stdio.h>
#include <dirent.h>
#include <errno.h>

int main()
{
    DIR *dp;
    struct dirent *dir;
    const char* dirname = "d:\\data.txt";

    if ((dp = opendir(dirname)) == NULL) {
        switch (errno) {
            case EACCES: printf("Permission denied\n"); break;
            case ENOENT: printf("Directory does not exist\n"); break;
            case ENOTDIR: printf("'%s' is not a directory\n", dirname); break;
        }
        return 1;
    }
    else {
        while ((dir = readdir(dp)) != NULL)
        printf("%s\n", dir->d_name);
    }


    if (closedir(dp) == -1)
        perror("closedir");

    return 0;
}





/*
run

'd:\data.txt' is not a directory

*/

 



answered May 2, 2021 by avibootz

Related questions

1 answer 222 views
1 answer 211 views
1 answer 271 views
1 answer 206 views
...