[英]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.