Search code examples
c++cwindowsglob

Globbing in C++/C, on Windows


Is there a smooth way to glob in C or C++ in Windows?

E.g., myprogram.exe *.txt sends my program an ARGV list that has...ARGV[1]=*.txt in it.

I would like to be able to have a function (let's call it readglob) that takes a string and returns a vector of strings, each containing a filename.

This way, if I have files a.txt b.txt c.txt in my directory and readglob gets an argument *.txt, it returns the above filelist.

//Prototype of this hypothetical function.
vector<string> readglob(string);

Does such exist?


Solution

  • Link with setargv.obj (or wsetargv.obj) and argv[] will be globbed for you similar to how the Unix shells do it:

    I can't vouch for how well it does it though.