#include <iostream>
#include <Windows.h>
#include <string>
void print(std::string str)
{
std::cout << str << std::endl;
}
bool confirmExit()
{
print("Exit y/n ?");
std::string confirm = "n";
std::cin >> confirm;
if(confirm.compare("y")==0)
{
return true;
}
else
{
return false;
}
}
void search(std::string path)
{
WIN32_FIND_DATA data;
HANDLE handle;
path = path+"\\\\";
std::string tPath = path+"*";
LPCSTR newPath = tPath.c_str();
handle = FindFirstFile(newPath,&data);
if(handle != INVALID_HANDLE_VALUE)
{
do
{
std::string filename = data.cFileName;
std::string filepath = path+filename;
if(filename.compare(".")==1 & filename.compare("..")==1)
{
if(data.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
search(filepath);
}
else
{
print(filepath);
}
}
}
while(FindNextFile(handle,&data));
}
else
{
print("Invalid path: "+(std::string) newPath);
}
}
void searchForm()
{
print("Enter path to search: ");
std::string path = "C:";
std::cin >> std::noskipws >> path;
search(path);
}
int main()
{
searchForm();
while(!confirmExit())
{
searchForm();
}
return 0;
}