Windows程式讀取不了中文路徑問題

hywing發表於2024-06-10

問題描述

今天除錯發現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!

相關文章