Forums Assignment Help How can I read a directory in a C program?

Viewing 2 posts - 1 through 2 (of 2 total)
  • Author
  • #1289

    How can I read a directory in a C program?


    See if you can use the opendir and readdir functions, which are part of the POSIX standard and are available on most Unix variants. Implementations also exist for MS-DOS, VMS, and other systems. (MS-DOS also has FINDFIRST and FINDNEXT routines which do essentially the same thing, and MS Windows has FindFirstFile and FindNextFile.) readdir returns just the file names; if you need more information about the file, try calling stat. To match filenames to some wildcard pattern,

    Here is a tiny example which lists the files in the current directory:

    #include <stdio.h>

    #include <sys/types.h>

    #include <dirent.h>



    struct dirent *dp;

    DIR *dfd = opendir(“.”);

    if(dfd != NULL) {

    while((dp = readdir(dfd)) != NULL)

    printf(“%sn”, dp->d_name);



    return 0;


    (On older systems, the header file to #include may be <direct.h> or <dir.h>, and the pointer returned by readdir may be a struct direct *. This example assumes that “.” is a synonym for the current directory.)

    In a pinch, you could use popen to call an operating system list-directory program, and read its output. (If you only need the filenames displayed to the user, you could conceivably use system

Viewing 2 posts - 1 through 2 (of 2 total)
  • You must be logged in to reply to this topic.