參考:
https://blog.csdn.net/wxqian25/article/details/43951281
https://docs.microsoft.com/en-us/windows/desktop/api/fileapi/nf-fileapi-getlongpathnamea
1 短路徑
短路徑名實在DOS下的命名規則 在DOS中,主文件名的長度不能超過8個字符 如果超過了8個 系統自動截取前6個字符,然后加上~1 如果前6個字符一樣了,就依次使用~2,~3
舉個例子,如果C盤目錄下有Program Files、Program Filess、Programme Files三個文件夾,他們的前6個字符都是progra。將他們按照字母順序排序: Program Files Program Filess Programme Files 那么短路徑分別為: progra~1 progra~2 progra~3
2 轉換函數
GetLongPathNameW
這個函數的第一個參數不區分大小寫
不支持路徑中包含空格, 此時函數返回值是0 , getlasterror返回 ERROR_PATH_NOT_FOUND
文件名中包含形如"~1"是合法的, 短路徑中包含帶"~1"文件名的路徑可以正常返回長路徑