Com*_*ser 3 .net c# windows special-folders system32
我想system32
在32位Windows和SysWOW64
64位Windows 上获取路径路径.无论Environment.GetFolderPath(Environment.SpecialFolder.System)
和Environment.SystemDirectory
做工精细.我应该选择和使用哪一个?我使用的是.NET 2.0
你可能更喜欢使用
Environment.SystemDirectory
Run Code Online (Sandbox Code Playgroud)
这是因为,.NET框架已经知道你需要什么文件夹,并且在幕后直接调用
Win32Native.GetSystemDirectory
Run Code Online (Sandbox Code Playgroud)
从底层kernerl32.dll
..(然后进行快速权限检查)
如果你使用,
Environment.GetFolderPath
Run Code Online (Sandbox Code Playgroud)
那么你必须传入一个枚举,并且在封面下GetFolderPath
必须进行快速枚举有效性检查.完成后,它会调用本机
Win32Native.SHGetFolderPath
Run Code Online (Sandbox Code Playgroud)
传入相当于所需文件夹类型的整数.
这将从本机调用底层方法,shfolder.dll
并且此方法将再次具有基于所请求文件夹的检查开关/案例,并最终调用系统目录逻辑.
基于以上2个流程,
Environment.SystemDirectory
Run Code Online (Sandbox Code Playgroud)
应该更合适,也可能更快.(我还没有真正测量过)