如何以编程方式检查系统上是否启用了8.3短path名称?

我知道手动我们可以通过设置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文件系统的系统上也可以支持长名称。