根据Microsoft documentation,如果前一个未定义,GetTempPath应该连续返回环境变量TMP,TEMP,USERPROFILE或Windows目录。在我今天看到的系统上,GetTempPath正在返回"%TMP%\ 8 \"在尝试复制文件时,它不存在并导致DirectoryNotFound异常。 TMP环境变量不包含" \ 8 \"目录。看来同一系统上的其他用户配置文件也有TMP内的其他编号目录(9,17等)。
任何人都知道为什么会这样?
这是代码,我验证了IO.Path.GetFileName没有返回任何奇怪的东西:
Dim sLocalPath As String
sLocalPath = IO.Path.Combine(IO.Path.GetTempPath, IO.Path.GetFileName(RemotePath))
我们只需重新创建文件夹即可修复该系统,并修改了我们的代码以创建该文件夹(如果该文件夹不存在)。不再是一个关键问题,但似乎很奇怪,我想确保我们的解决方案朝着正确的方向前进。