Find a specific file in a directory in C++
Hello, guys in this tutorial we will learn about how to find a specific file in a directory inĀ C++. We will look at some examples then we move further.
Directory- C:\\Users\\MyPC\\Desktop\\codespeedy has file codespeedy.exe helloworld.cpp factorial.cpp Input helloworld.cpp Output file present in directory Input array_sum Output file is not present in directory
C++ program to find a specific file in a directory
#include<iostream>
#include<dirent.h>
using namespace std;
int main()
{
DIR *directory; // creating pointer of type dirent
struct dirent *x; // pointer represent directory stream
cout<<"Please enter file name with its extension"<<endl;
string s; //declaring string variable
cin>>s; // taking string as input or file name with input
bool result=false; //declaring string variable and assign it to false.
if (( directory= opendir ("C:\\Users\\MyPC\\Desktop\\codespeedy")) != NULL) { // check if directory open
while ((x = readdir (directory)) != NULL) {
{
if(s==x->d_name)
{
result=true; //if file found then assign result to false.
break; // break the loop if file found.
}
}
}
closedir (directory); //close directory....
}
if(result) // if file is present then....
{
cout<<"file is present"<<endl;
}
else //if file is not present....
{
cout<<"file is not present"<<endl;
}
}
Explanation of the above program:
opendir-It will open directory stream and take a string as a parameter and return pointer of type DIR if it successfully opens directory or returns a NULL pointer if it is not able to open directory.
closedir-It will close the directory. It will return 0 if it successfully close directory otherwise return 0.
readdir()-It will return pointer of type dirent structure which will represent directory entry at the current position in the directory stream specified by the argument.
Note-If you are running above code on your machine please change directory address according to your need.
Thank you for reading this tutorial on how to find a specific file in a directory in C++.
Also read:
Leave a Reply