Working on "Use std::filesystem. Remove Boost Filesystem & System" #20744, I found an unfortunate [pitfall](https://github.com/bitcoin/bitcoin/pull/20744#issuecomment-946046666) -- `boost/process.hpp` depends on `boost::filesystem` when cross-compiling for Windows. It happens in Guix environment as well.

The goal of this issue is to discuss and find a solution to get rid of `boost::filesystem`.
{
    LOCK(cs_args);
    fs::path& path = m_cached_blocks_path;
    
    
    if (!path.empty()) return path;
    if (IsArgSet("-blocksdir")) {
        path = fs::system_complete(fs::PathFromString(GetArg("-blocksdir", "")));
        if (!fs::is_directory(path)) {
            path = "";
            return path;
        }
    } else {
        path = GetDataDirBase();
    }
    path /= fs::PathFromString(BaseParams().DataDir());
    path /= "blocks";
    fs::create_directories(path);
    path = StripRedundantLastElementsOfPath(path);
    return path;
}
const fs::path& ArgsManager::GetDataDir(bool net_specific) const