跨平台库操作Windows路径?
-
12-09-2019 - |
题
我写了需要检查和处理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
有两种模式:天然的和便携式的。这意味着Windows路径语法是不可用的,当我在Linux下编译(它在源#ifdef
ed出)。因此,路径。 “C:\路径” 被认为是在Windows绝对的,而是相对的在Linux中
你们可以推荐一个跨平台的C ++库,可以检查和处理Windows的路径?
目前,只有Windows的路径操作,我会做的是检查的路径是绝对的还是没有。
我将使用绝对路径的标准是它都包含一个驱动器号,路径以\
开始。该标准下的绝对路径的一个例子C:\path
。这些是相对路径的两个例子中这一标准下:C:path
,\path
解决方案 2
这似乎是很难找到这个库。一种可能性是在PathIsRelative
Winelib,但我不希望使用Winelib。
最后我做了非常具体的解决方案只是为了确定这个小东西。假设路径是正确的(一个合理的假设在我的情况下),绝对路径将包含:\
,而相对路径不会。
因此,坏的,但工作,解决方法是:没有合适的文库。检查:\
的存在。
其他提示
什么QT与 QFileInfo ?
您能解释一下什么程序是指具有在Linux上?
Windows的路径做也许就足够了一些简单的改造适用于Windows的路径字符串,语法上把它变成一个Unix路径,然后使用boost ::文件系统来操纵它。
不隶属于 StackOverflow