[英]How do I get the full path for a filename command-line argument?
我找到了很多库来帮助解析命令行参数,但它们似乎都没有处理文件名。 如果我在命令行上收到类似“../foo”的内容,我该如何找出该文件的完整路径?
您可以使用boost::filesystem
从其relative path
获取boost::filesystem
的absolute path
relative path
:
namespace fs = boost::filesystem;
fs::path p("test.txt");
fs::path full_p = fs::complete(p); // complete == absolute
std::cout << "The absolute path: " << full_p;
POSIX有realpath()
。
#include <stdlib.h>
char *realpath(const char *filename, char *resolvedname);
描述
realpath()函数从filename指向的路径名派生出一个名称相同文件的绝对路径名,其分辨率不涉及“。”,“..”或符号链接。 生成的路径名在resolvedname指向的缓冲区中最多存储{PATH_MAX}个字节。
在shell脚本中,命令“readlink -f”具有realpath()的功能。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.