Q:

How can I change to another directory in C++?

I am writing a program in C++ where I have 500 folders, each containing one text file. I want to read each text file from each folder in C++.
How can I accomplish this?

A:

If  you want a neat and portable way to access files and directories, look no further than Boost.Filesystem. You should browse through the documentation to find exactly what you need. Below is a suggestion of how you could use the framework to get things done.
#include <iostream>
#include <filesystem>

using std::tr2::sys;
using std::cout;

void do_something_with_file( std::string const& p )
{
  std::cout << "Found file : " << p << std::end;
}

void explore_directory( std::string const& p )
{
    for (directory_iterator itr(p); itr!=directory_iterator(); ++itr)
    {
      if( is_directory(itr->status()) )
      {
        explore_directory(itr->path().filename());
      }
      else if( is_regular_file(itr->status()) )
      {
        do_something_with_file(itr->path().filename());
      }
    }
}

int main(int argc, char* argv[])
{
  std::string p(argc <= 1 ? "." : argv[1]);

  if (is_directory(p))
  {
    explore_directory(p);
  }
  else cout << (exists(p) : "Found: " : "Not found: ") << p << '\n';

  return 0;
}

A:

The C++ Standard does not specify any directory functions, so you will have to use something implementation-specific. For example, on Windows you can use the chdir() function. declared in <direct.h>.
BTW, please note it's a good idea to indicate which operating system(s) you are interested in when posting questions like this.

A:

findfirstfile

