在比较新的文件系统(如:FAT32,exFat,NTFS等)里,Windows将长文件名以UNICODE的形式保存在disk上。为了兼容以前的系统,Windows同时会生成一个短文件名(8.3 aliasing)。短文件名的生成规则参见https://support.microsoft.com/en-us/kb/142982。
在Win 7 及以后的系统中,短文件名格式可以通过“fsutil8dot3name set” 命令开启或关闭。如果关闭8.3 aliasing功能,则此时新创建的文件不会包含短文件名。即使之后再次打开8.3并修改文件名,在关闭状态下创建的文件仍然不会含有短文件名。
可以通过GetShortPathName()或WIN32_FIND_DATA的cAlternateFileName变量来获取短文件名。
References:
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365247(v=vs.85).aspx#short_vs._long_names
https://msdn.microsoft.com/en-us/library/windows/desktop/aa365740(v=vs.85).aspx