Разница между 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

должен быть более подходящим и, вероятно, быстрее для вас. (я не очень измерил)

Другие вопросы по тегам