参考:
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"文件名的路径可以正常返回长路径