How to Get all the Files in a Directory using C++

Hey Guys!! In this tutorial, we will learn how to get all the files in a directory/folder by using a simple C++ program.

For this we need to use a header file known as dirent.h which is used to represent a directory stream and  includes in the following compilers:

  • Turbo C++ (DOS)
  • GCC  (Cross-platform)
  • MinGW (a  Microsoft Windows version of GCC)
  • Borland  C++ Builder ( Microsoft Windows)

And we also need to use some functions for this such as :

  • opendir() function which opens a directory stream corresponding to the directory name and returns a pointer to the directory stream
  • readdir() function which returns a pointer to a structure representing the next directory entry in the directory stream and at last
  • closedir() function which closes the directory handle.

C++ Program to get all the files in a directory

#include<iostream>
#include<conio.h>
#include<dirent.h>
using namespace std;
int main()
 {
          DIR *dir;
          dirent *pdir;
          cout<<"Enter path to list all the files in a directory:"<<endl;
          dir=opendir(".");
          while(readdir(dir))
           {
              pdir=readdir(dir);
              cout<< pdir->d_name<<endl;
            }
          closedir(dir);
          getch();
 }
//output:
//Enter path to list all the files in a directory:
// ..
//  a.out

a.out is a default output file name when no output name is specified.

I have used some commands here such as:

DIR is a command in Various OS  as it is used for computer file and directory listing.

PDIR is a programmable DIR command as it allows us to display information about files and directories.

I hope your all query regarding this is resolved now.

If you still have any query then please let me know.

You may also check

One response to “How to Get all the Files in a Directory using C++”

  1. Random Reader says:

    The code just gives every second entry in the directory. To get every file try this instead of the while loop:

    do
    {
    pdir = readdir(dir);
    cout<d_name<<endl;
    }
    while(pdir);

Leave a Reply

Your email address will not be published. Required fields are marked *