繁体   English   中英

如何获取文件名命令行参数的完整路径?

[英]How do I get the full path for a filename command-line argument?

我找到了很多库来帮助解析命令行参数,但它们似乎都没有处理文件名。 如果我在命令行上收到类似“../foo”的内容,我该如何找出该文件的完整路径?

您可以使用boost::filesystem从其relative path获取boost::filesystemabsolute 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM