#pragma once

#include <string>

namespace FileSystem2 {

std::string JoinPath(const std::string& a, const std::string& b);


// 支持多个参数的版本（C++11 可变参数模板）
template<typename... Args>
std::string JoinPath(const std::string& first, const Args&... rest) {
std::string result = first;
std::initializer_list<std::string> paths = { rest... };
for (const auto& p : paths) {
      result = JoinPath(result, p);
}
return result;
}

std::string GetFilename(const std::string& path);

std::string GetStem(const std::string& path);

std::string GetExtension(const std::string& path);

std::string GetParentPath(const std::string& path);

}
