gpt4 book ai didi

c++ - 确定两个目录之间的相对位置

转载 作者:太空宇宙 更新时间:2023-11-04 03:51:43 25 4
gpt4 key购买 nike

这是一个网络服务器分配,这是我想实现的一个额外功能。我想确保客户端无法指定服务器根目录之上的文件。

例如,假设我有一个文件夹“above”,在“above”内,我有 www 。我的根目录设置为 /above/www在服务器中,因此服务器应该能够访问 /above/www 内的任何内容。还可以说我有一些a1.txtabove ,所以/above/a1.txt ,我不希望客户端能够执行 GET /../a1.txt HTTP/1.0并访问该文件。

我已经实现了 90% 的服务器,我只需要确定文件是否位于文件系统树中给定目录的上方或下方。除了计算../之外,我想不出一个 super 简单的方法来做到这一点。字符串,如果这些字符串多于文件夹,则我位于根目录之上。

我运行的是linux,c++11是可以接受的。

最佳答案

使用 boost::filesystem::path(relativePath).absolute().parent_path().string() 获取 relativePath 表示的文件所在目录的绝对路径。现在,您只需检查 "/above/www" 是否是该目录的前缀即可。

关于c++ - 确定两个目录之间的相对位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26131336/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com