簡體   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