是我還是boost :: filesystem :: path :: make_preferred不是將「\」轉換爲「/」? !轉換從Windows到Linux文件路徑,然後再次使用boost :: filesystem
davidan @蘭伯特:〜/文檔/ PROG /工作$ ../practice/./path_info C:\鼻頭富/條\ baa.txt
組成路徑:
COUT < < - -----------:「c:pitou/foo/bar \ baa.txt」
make_preferred()----------:「c:pitou/foo/bar \ baa.txt」
我很希望爲
C:\鼻頭\富\酒吧\ baa.txt
在Windows和
/pitou/foo/bar/baa.txt
(或者相近)的POSIX
源是在這裏:boost::filesystem tutorial
你不能使用常用的環境變量,例如: 'HOME'和'getenv'他們?包含在path.hpp中的 – 2013-04-05 19:46:52
:>#ifdef BOOST_WINDOWS_API typedef wchar_t value_type; BOOST_STATIC_CONSTEXPR value_type preferred_separator = L'\\'; #else typedef char value_type; BOOST_STATIC_CONSTEXPR value_type preferred_separator ='/'; #endif所以這應該已經解決了,不是? – Sassinak 2013-04-05 20:35:36
非,它不是... >> path&make_preferred(); 影響:包含的路徑名被轉換爲首選的本機格式。 [注意:在Windows上,效果是用反斜槓替換斜槓。在POSIX上,沒有任何效果。 - 結束註釋]我最終必須在ifdef posix條件下手動執行std :: replace – Sassinak 2013-05-15 13:19:10