windows短路径转换成长路径

参考: 

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



原文地址:https://www.cnblogs.com/talenth/p/9953276.html