我正在编写一个跨平台应用程序,需要检查和操作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 中被认为是相对路径。
你们能推荐一个跨平台的 C++ 库,可以检查和操作 Windows 路径吗?
目前,我将仅执行一个操作,即检查路径是否为绝对路径。
我将使用以下标准来判断绝对路径:它既包含驱动器号,又以
\
开头。符合此标准的绝对路径示例为 C:\path
。根据此标准,以下都是相对路径示例:C:path
、\path
。
C:foo.txt
。它使用的是 C 盘的当前工作目录! - MSalters