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

This topic contains 1 reply, has 1 voice, and was last updated by  Aakanksha 7 years, 7 months ago.

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

    Aakanksha
    Participant

    How can I read a directory in a C program?

    #9850

    Aakanksha
    Participant

    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>

    main()

    {

    struct dirent *dp;

    DIR *dfd = opendir(“.”);

    if(dfd != NULL) {

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

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

    closedir(dfd);

    }

    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.