我有一个由std::filesystem::path
. 我想向该路径添加一些用户提供的文件名,并确保生成的路径不在根目录之外。
例如:
std::filesystem::path root = "/foo/bar";
std::filesystem::path userFile = "ham/spam";
std::filesystem::path finalPath = root / userFile;
最后的路径没问题,在里面/foo/bar
。但是如果我给../ham/spam
变量userFile
,这将导致定义之外的文件rootPath
。
如何检查生成的文件是否保持在其允许的边界内?