使用短文件名停止 Windows %tmp%环境变量

使用短文件名停止 Windows %tmp%环境变量

我有一个 C++ 应用程序正在使用%tmp%变量(来自获取临时路径()函数)。不幸的是,如果使用短文件名生成,它存在一个错误,无法处理可能出现在用户本地临时目录路径中的 tidle。

%tmp%如果可能的话,我想要做的是使环境变量不包含短文件名。

在我的研究中,我遇到了以下命令:

fsutil.exe 8dot3name set C: 1 
fsutil.exe 8dot3name strip /s /v C:\

我已运行这两个命令,第一个命令成功禁用了短文件名。但是,第二个命令因大约 2000 个现有短文件名而失败,因为它们已在注册表中引用。这很好,但我真的只关心那一个环境变量,所以想知道是否有办法强制删除该短文件名,或者,如果我觉得不建议这样做,是否有办法强制环境变量使用长文件名?我理解变量%tmp%使用了%userprofile%变量,而后者实际上是有问题的变量,所以我认为我需要查看的是那个变量……?

任何帮助都将不胜感激。

干杯!

答案1

也许我对你来说已经太晚了,但也许它可以帮助别人:

GetLongPathName() 函数应该将短名称转换为长名称。

相关内容