我正在编写一个需要检查和操作 Windows 路径的跨平台应用程序。
具体来说,对于我现在遇到的特定问题,我需要知道路径是绝对的还是相对的。
当前代码使用boost::filesystem::path
的当然是在 Windows 上的魅力:
boost::filesystem::path the_path(the_path_as_a_string);
if (!the_path.has_root_path()) { /* do stuff */ }
这种方法的问题是boost::filesystem::path
只有两种模式:原生和便携。这意味着我在Linux下编译时Windows路径语法不可用(它#ifdef
在源代码中被淘汰)。因此,路径“C:\path”在 Windows 中被认为是绝对的,但在 Linux 中是相对的。
你们能推荐一个可以检查和操作 Windows 路径的跨平台 C++ 库吗?
目前,我要做的唯一 Windows 路径操作是检查路径是否为绝对路径。
我将用于绝对路径的标准是它都包含驱动器号,并且路径以\
. 此标准下的绝对路径的一个示例是C:\path
。这些都是此标准下的相对路径的示例:C:path
, \path
.