I would suggest using both boost::filesystem and boost::regex. They are both portable and powerful.

Jeff