Dot-Net

使用 32 位應用程序獲取 syswow64 目錄

  • June 24, 2016

我試圖在系統目錄中找到一個文件。問題是使用時

Environment.SystemDirectory

在 x64 機器上,我仍然得到 System32 目錄,而不是 Systemwow64 目錄。

我需要在 x86 機器上獲取“System32”目錄,在 x64 上獲取“SystemWow64”目錄

有任何想法嗎?

編輯: 要找到 SysWow64,我正在使用“GetSystemWow64Directory”。(此處的更多資訊:pinvoke 注意在非 x64 機器上 - 結果為 ‘0’。希望這對某人有所幫助

使用SHGetSpecialFolderPath功能:

[DllImport("shell32.dll")]
public static extern bool SHGetSpecialFolderPath(IntPtr hwndOwner, [Out]StringBuilder lpszPath, int nFolder, bool fCreate);

string GetSystemDirectory()
{
   StringBuilder path = new StringBuilder(260);
   SHGetSpecialFolderPath(IntPtr.Zero,path,0x0029,false);
   return path.ToString()
}

System32在 x86 和SysWow64x64 上返回

改為使用Environment.GetFolderPath(Environment.SpecialFolder.SystemX86)

引用自:https://stackoverflow.com/questions/3540930