我知道手动我们可以通过设置NtfsDisable8dot3NameCreation
启用或禁用8.3短path名称支持。
但是如何通过代码读取这个系统信息呢? 其实我必须根据系统是否启用8.3禁用一些function。
请帮忙
谢谢
fsutil
提供了这个功能:
PS C:\Windows\system32> FSUTIL.EXE 8dot3name query D: The volume state is: 0 (8dot3 name creation is enabled). The registry state is: 2 (Per volume setting - the default). Based on the above two settings, 8dot3 name creation is enabled on D:
如果你想要一个API,使用GetVolumeInformation
,它提供了这个:
lpMaximumComponentLength [out,可选]
指向一个变量的指针,该变量在TCHAR中接收指定文件系统支持的文件名组件的最大长度。
文件名组件是反斜杠之间的文件名的一部分。 存储在* lpMaximumComponentLength指向的变量中的值用于指示指定的文件系统支持长名称。 例如,对于支持长名称的FAT文件系统,该函数将存储值255,而不是先前的8.3指示符。 在使用NTFS文件系统的系统上也可以支持长名称。