問題描述
今天除錯發現win32介面GetFileAttributesW居然不支援中文路徑,於是尋找解決方案,找了半天,嘗試用boost的fileystem庫發現能用,而且boost能跨平臺!
不支援中文
win32介面獲取檔案屬性,當傳入引數帶有中文字元時,它獲取的屬性就會異常
DWORD GetFileAttributesW([in] LPCWSTR lpFileName);
支援中文
boost判斷是否為檔案
std::string realpath = "D:\\新建資料夾\\a.txt";
boost::filesystem::path p(realpath);
boost::filesystem::is_regular_file(p);
boost判斷是否為資料夾
std::string realpath = "D:\\新建資料夾";
boost::filesystem::path p(realpath);
boost::filesystem::is_directory(p);
總結
人生苦短,我用boost!