我需要创建一个能删除任何内容的函数,例如'..'或'。'在文件路径中。因此,如果我resolvePath("/root\\\\directory1/directory2\\\\\\\\..")
,它将返回"root/directory1
。我尝试在路径的每个部分制作一个char *数组,但我无法得到它的每个部分。
答案 0 :(得分:4)
两个真正的跨平台替代方案是提升和Qt,所以这里有两个证明:
path canonical(const path& p, const path& base = current_path());
path canonical(const path& p, system::error_code& ec);
path canonical(const path& p, const path& base, system::error_code& ec);
QFileInfo fileInfo("/root\\\\directory1/directory2\\\\\\\\.."))
qDebug() << fileInfo.canonicalFilePath();
答案 1 :(得分:2)
从你给出的示例路径看,你是在类Unix系统上。您可以使用realpath()
规范化您的路径。这至少存在于Linux,BSD和Mac OS上。