1. 程式人生 > >boost::filesystem獲取目錄下的所有.xml檔名,並批量更改.xml檔案中的內容。

boost::filesystem獲取目錄下的所有.xml檔名,並批量更改.xml檔案中的內容。

第一步,遍歷資料夾並獲取所有.xml檔名,並存入files列表。


#include <boost/filesystem.hpp>
namespace fs = boost::filesystem;

int get_filenames(const std::string& dir, std::vector<std::string>& filenames)
{
	fs::path path(dir);
	if (!fs::exists(path))
	{
		return -1;
	}

	fs::directory_iterator end_iter;
	for (fs::directory_iterator iter(path); iter!=end_iter; ++iter)
	{
		if (fs::is_regular_file(iter->status()))
		{
			filenames.push_back(iter->path().string());
		}

		if (fs::is_directory(iter->status()))
		{
			get_filenames(iter->path().string(), filenames);
		}
	}
	return filenames.size();
}