我正在尝试访问我的代码中的目录C:\ Windows \ System32 \ winevt,但我得到了System.IO.DirectoryNotFoundException
。
我读了这篇帖子: Anyone know why I can't access the winevt folder programmatically in C#?
这意味着在64位操作系统下运行32位应用程序会将我重定向到 SystemWOW64 目录,而解决方法是将我的目录设置为%windir%\Sysnative\winevt
。所以我修改了我的代码以符合前面提到的线程中提供的答案,除了它仍然失败。我正在运行 Windows 10企业64位并且Sysnative不存在。
示例代码:
这将返回true:
string directory = @"C:\Windows\System32";
bool isDirectoryExists = Directory.Exists(directory);
这将返回false:
string directory = @"C:\Windows\System32\winevt";
bool isDirectoryExists = Directory.Exists(directory);
目录System和SysWOW64中没有winevt目录,并且Sysnative不存在。所以我的问题是,如何访问winevt目录?
答案 0 :(得分:0)
我的错误是在Windows目录中查找名为Sysnative的实际文件夹,我没有看到它,因此假设代码不起作用。但无论如何我测试了它,Directory.Exists
返回true。这是因为Sysnative是一个虚拟文件夹。
返回true:
string directory = @"C:\Windows\Sysnative\winevt";
bool isDirectoryExists = Directory.Exists(directory);
http://www.thewindowsclub.com/sysnative-folder-in-windows-64-bit