托管代码: 运用
System.Environment.GetFolderPath函数,通过指定我们想要获取的“已知文件夹”为参数,从而获取相应的文件夹的正确路径。
- Environment.SpecialFolder.CommonApplicationData – 所有用户都可以访问的使用程序数据适合放置在这个目录下。
- Environment.SpecialFolder.LocalApplicationData – 每个用户单独访问的使用程序数据适合放置在这个目录下。
- Environment.SpecialFolder.ApplicationData – 每个用户单独访问的使用程序数据适合放置在这个目录下。这是“随身文件夹”。
机器名
代码:
Environment.MachineName
结果示例:
"BOBOPO.COM"
用户名
代码:
Environment.UserName
结果示例:
"Bobopo"
CPU数量
代码:
Environment.ProcessorCount
结果示例:
1
操作系统内部版本信息
代码:
Environment.OSVersion.VersionString
结果示例:
"Microsoft Windows NT 5.1.2600 Service Pack 2"
操作系统版本号
代码:
Environment.OSVersion.Version.ToString
结果示例:
"5.1.2600.131072"
操作系统Service Pack号
代码:
Environment.OSVersion.ServicePack
结果示例:
"Service Pack 2"
.Net Framework版本号
代码:
Environment.Version.ToString
结果示例:
"2.0.50727.1433"
系统目录
Windows操作系统主目录
代码:
Directory.GetParent(Environment.SystemDirectory).FullName
结果示例:
"C:WINDOWS"
System32系统目录
代码:
Environment.SystemDirectory
结果示例:
"C:WINDOWSsystem32"
Program Files程序文件目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles)
结果示例:
"C:Program Files"
Common Files程序公共文件目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.CommonProgramFiles)
结果示例:
"C:Program FilesCommon Files"
所有用户公用的Application Data程序数据目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData)
结果示例:
"C:Documents and SettingsAll UsersApplication Data"
用户目录
Application Data程序数据目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
结果示例:
"C:Documents and SettingsBobopoApplication Data"
Desktop桌面目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.Desktop)
结果示例:
"C:Documents and SettingsBobopoDesktop"
Cookies目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.Cookies)
结果示例:
"C:Documents and SettingsBobopoCookies"
Favorites个人爱好目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.Favorites)
结果示例:
"C:Documents and SettingsBobopoFavorites"
My Documents我的文档目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
结果示例:
"C:Documents and SettingsBobopoMy Documents"
Start Menu开始菜单目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.StartMenu)
结果示例:
"C:Documents and SettingsBobopoStart Menu"
Recent最近访问目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.Recent)
结果示例:
"C:Documents and SettingsBobopoRecent"
Templates文档模板目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.Templates)
结果示例:
"C:Documents and SettingsBobopoTemplates"
Local Settings本地设定的Application Data目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData)
结果示例:
"C:Documents and SettingsBobopoLocal SettingsApplication Data"
History访问历史目录
代码:
Environment.GetFolderPath(Environment.SpecialFolder.History)
结果示例:
"C:Documents and SettingsBobopoLocal SettingsHistory"
操作系统名称
似乎.Net中并没有一种直接的方法获得操作系统的名称,至少我没有找到。不过可以通过Environment.OSVersion中的内部版本号来推断出操作系统的名称。
原理
与操作系统名称相关的Environment.OSVersion属性如下:
- Platform: 可以用来推断Windows 3.1系列、Windows 95系列和Windows NT系列。
- Version.Major: 可以用来推断产品系列中的大版本。
- Version.Minor: 可以用来推断大版本中的小版本。
具体的推断关系如下表所示:
操作系统名称 | Platform | Version.Major | Version.Minor |
---|---|---|---|
Windows 3.1 | 0 | ? | ? |
Windows 95 | 1 | 4 | 0 |
Windows 98 | 1 | 4 | 10 |
Windows Me | 1 | 4 | 90 |
Windows NT 3.51 | 2 | 3 | 51 |
Windows NT 4.0 | 2 | 4 | 0 |
Windows 2000 | 2 | 5 | 0 |
Windows XP | 2 | 5 | 1 |
Windows 2003 | 2 | 5 | 2 |
Windows Vista | 2 | 6 | 0 |
需要指出的是,目前尚未发布的Windows 2008和Windows Vista具有相同的特征,所以用这种方法无法区分这两个版本。
可以用下面的函数来计算出操作系统的名称。
Public Shared Function GetOSVersionText() As String
Dim v As Version = Environment.OSVersion.Version
Select Case Environment.OSVersion.Platform
Case PlatformID.Win32S : Return "3.1"
Case PlatformID.Win32Windows
Select Case v.Minor
Case 0 : Return "95"
Case 10 : Return "98"
Case 90 : Return "Me"
End Select
Case PlatformID.Win32NT
Select Case v.Major
Case 3 : Return "NT 3.51"
Case 4 : Return "NT 4.0"
Case 5
Select Case v.Minor
Case 0 : Return "2000"
Case 1 : Return "XP"
Case 2 : Return "2003"
End Select
Case 6 : Return "Vista"
End Select
Case PlatformID.WinCE
Return "CE " & v.Major.ToString & "." & v.Minor.ToString
End Select
Return "Unknown"
End Function
操作系统名称
代码:
"Microsoft Windows " & GetOSVersionText()
结果示例:
"Microsoft Windows XP"
带Service Pack号的操作系统名称
代码:
"Microsoft Windows " & GetOSVersionText() & " " & Environment.OSVersion.ServicePack
结果示例:
"Microsoft Windows XP Service Pack 2"