2017-06-11 73 views
0

我試圖訪問目錄C:\ Windows \ System32 \ winevt在我的代碼中,但我得到一個System.IO.DirectoryNotFoundExceptionC#訪問winevt目錄拋出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); 

有一個在目錄系統和Syswow64資料不winevt目錄,系統不存在。所以我的問題是,我如何訪問winevt目錄?

回答

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