Разница между Environment.GetFolderPath(Environment.SpecialFolder.System) и Environment.SystemDirectory для папки System32
Я хочу проложить путь system32
путь на 32-битной Windows и SysWOW64
на 64-битной Windows. И то и другое Environment.GetFolderPath(Environment.SpecialFolder.System)
а также Environment.SystemDirectory
отлично работает Какой из них я предпочитаю и использовать? Я использую.NET 2.0
1 ответ
Вы могли бы предпочесть использование
Environment.SystemDirectory
это потому, что.NET Framework уже знает, какая папка вам нужна, и под прикрытием делает прямой вызов
Win32Native.GetSystemDirectory
из основного kernerl32.dll
.. (а затем делает быструю проверку разрешения)
если вы используете,
Environment.GetFolderPath
тогда вы должны передать в enum, а под крышками GetFolderPath
должен сделать быструю проверку допустимости перечисления. После того, как сделано, он вызывает родной
Win32Native.SHGetFolderPath
передавая целочисленный эквивалент типа необходимой папки.
это вызывает базовый метод от нативного shfolder.dll
и этот метод снова будет иметь проверку типа switch / case, основанную на запрошенной папке, и, наконец, вызовет логику системного каталога.
на основе вышеупомянутых 2 потоков,
Environment.SystemDirectory
должен быть более подходящим и, вероятно, быстрее для вас. (я не очень измерил)