DirectoryNotFoundException
有时,我们软件的某些用户会报告由有线异常引起的问题。这只发生在某些运行 Vista 的用户身上。并非所有运行 Vista 的用户都有这个问题。运行 Win7 或 XP 的用户没有关于此问题的报告(但这并不能证明此问题不会在这些系统上发生 - 我们只是没有此类报告)。
我们的软件在 ProgramData 文件夹中存储了一些图形数据。当程序尝试读取这些文件时,会引发以下异常:
Message: Could not find a part of the path 'C:\ProgramData\My App Name\Subfolder\Subfolder'.
mscorlib
in System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
in System.IO.Directory.InternalGetFileDirectoryNames(String path, String userPathOriginal, String searchPattern, Boolean includeFiles, Boolean includeDirs, SearchOption searchOption)
in System.IO.Directory.GetFiles(String path, String searchPattern, SearchOption searchOption)
in System.IO.Directory.GetFiles(String path)
路径是C:\ProgramData\My App Name\Subfolder\Subfolder。文件夹存在 - 我 100% 确定。它是由 NSIS 安装程序创建的。它对所有用户都是可写的(或者至少应该是我们使用 NSIS 脚本设置它的方式)。用户确认该文件夹存在 - 他可以使用 Windows 资源管理器导航到该位置。
起初我以为是 UAC 的问题,但异常说Could not find a part of the path。这让我发疯,因为我们无法在我们的测试系统上重现该问题。不管是什么配置。XP、Vista、Win7 - 在我们的机器上它可以正常工作。