C#小技巧系列之一:获取系统有关信息

简介:
说明:本人准备写一些C#有关的小技巧系列文章,这些文章含金量并不高,代码难度不大,不过因为问的次数比较多,从而导致本人决定用自己所知的方式写这一系列文章,可以看做“趣味导学”系列吧。
 要展示的第一个例子就是获取系统磁盘情况和操作系统名称,获取的信息包括本机上所有磁盘盘符,磁盘类型(软驱、硬盘分区、光盘),磁盘文件类型(FAT32/NSFS),磁盘空间总大小及剩余空间大小等。为了方便查看代码,用控制台式编写。代码如下:
using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.IO;

namespace  LocalDriveInfo
{
    
class Program
    
{
        
static void Main(string[] args)
        
{
            
string[] drives = System.Environment.GetLogicalDrives();
            DriveInfo driveInfo 
= null;
            System.Console.WriteLine(GetOperationSystemInName());
            System.Console.WriteLine(
"卷标 盘符 类型 文件系统 总大小(byte) 可用空间大小(byte)");
            
for (int i = 0; i < drives.Length; i++)
            
{
                driveInfo 
= new DriveInfo(drives[i]);
                
if (driveInfo.IsReady)
                
{
                    System.Console.WriteLine(
"{0} {1} {2} {3} {4} {5}", driveInfo.VolumeLabel, driveInfo.Name,
                        driveInfo.DriveType, driveInfo.DriveFormat, driveInfo.TotalSize.ToString(
"###,###"/*/ (1024 * 1024)*/, driveInfo.AvailableFreeSpace.ToString("###,###"/*/ (1024*1024))*/);
                }

                
else
                
{
                    System.Console.WriteLine(
"{0} {1} {2} {3} {4} {5}""", driveInfo.Name,
                        driveInfo.DriveType, 
"""""""");
                }

            }

            System.Console.ReadLine();
        }


        
///<summary>
        
/// 获取系统名称
        
/// </summary>
        
/// <returns></returns>

        public static string GetOperationSystemInName()
        
{
            OperatingSystem os 
= System.Environment.OSVersion;
            
string osName = "UNKNOWN";
            
switch (os.Platform)
            
{
                
case PlatformID.Win32Windows:
                    
switch (os.Version.Minor)
                    
{
                        
case 0: osName = "Windows 95"break;
                        
case 10: osName = "Windows 98"break;
                        
case 90: osName = "Windows ME"break;
                    }

                    
break;
                
case PlatformID.Win32NT:
                    
switch (os.Version.Major)
                    
{
                        
case 3: osName = "Windws NT 3.51"break;
                        
case 4: osName = "Windows NT 4"break;
                        
case 5if (os.Version.Minor == 0)
                            
{
                                osName 
= "Windows 2000";
                            }

                            
else if (os.Version.Minor == 1)
                            
{
                                osName 
= "Windows XP";
                            }

                            
else if (os.Version.Minor == 2)
                            
{
                                osName 
= "Windows Server 2003";
                            }

                            
break;
                        
case 6: osName = "Longhorn"break;
                    }

                    
break;
            }

            
return String.Format("{0},{1}", osName, os.Version.ToString());
        }

    }

}


















本文转自周金桥51CTO博客,原文链接: http://blog.51cto.com/zhoufoxcn/164400  ,如需转载请自行联系原作者

相关文章
|
1月前
|
存储 开发框架 .NET
C#语言如何搭建分布式文件存储系统
C#语言如何搭建分布式文件存储系统
66 2
|
1月前
|
存储 分布式计算 监控
C# 创建一个分布式文件存储系统需要怎么设计??
C# 创建一个分布式文件存储系统需要怎么设计??
29 0
|
4月前
|
存储 Oracle 关系型数据库
PACS源码,C#语言数字医学影像系统成品源码
**数字医学影像系统(RIS/PACS)**采用C#开发,基于C/S架构,配Oracle数据库,具备自主版权,适用于项目实施。系统包含分诊、超声、放射、内镜、病理等工作站,支持基本信息维护、报表查询和系统维护。功能亮点有:WorkList管理、影像采集传输、存储检索、图像处理、多序列浏览、流程控制、报告录入与审核、支持多种影像设备及高级影像处理。RIS与PACS数据库同步,并集成HIS、电子病历等系统接口。全面遵循DICOM3.0标准。
PACS源码,C#语言数字医学影像系统成品源码
|
4月前
|
BI 数据处理
一体化的医学实验室信息系统源码,C#LIS系统源码
面向医学实验室的一体化平台提供标本流程管理、报告发布及科室管理支持。它与HIS无缝对接,简化患者信息录入,实现检验结果实时同步。系统自动处理数据、分类样本、计算参考范围,并对异常结果预警。条码管理简化样本追踪,质控管理提升检测准确性。平台还支持数据审核发布、历史结果查询对比、灵活报表打印及统计分析等功能,辅助科室管理和试剂库存控制,加强科室间沟通协作。
一体化的医学实验室信息系统源码,C#LIS系统源码
|
3月前
|
存储 搜索推荐 C#
WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
WPF/C#:让绘制的图形可以被选中并将信息显示在ListBox中
42 0
|
4月前
|
数据采集 监控 BI
C#实验室检验LIS信息系统源码 微生物检验、质控维护
LIS系统的主要目标是为检验室开展检验工作提供更加有效的系统支持。该系统将尽量减少以人工操作的方式来实现信息转移,减少在接收检验项目、报告结果和保存记录等工作中可能会出现的人为误差,为检验结果查询提供更有效的方法,节省了管理信息所需的琐碎时间和精力。为实验室技术人员提供智能化的运行模式,使处理诸如按照规程审核检验结果、取消检验项目、分析、处理存在重大疑问的检验结果、执行特殊的命令和处理质量控制等问题更轻松自如,这将使检验人员更快地获得准确清晰的检验结果。为临床医护人员提供在线设施,使他们可以及时准确地获得相关实验室信息。确保检验结果的可靠性和准确性,利用实验室管理信息系统的仪器监控和质量控制,
41 0
|
4月前
|
C#
C#中使用IntPtr.Size属性来判断当前系统是32位还是64位
这段代码首先检查 `IntPtr.Size`的值,如果是4,则输出"当前系统是32位";如果是8,则输出"当前系统是64位";如果都不是,就输出"未知系统位数"。
51 0
|
6月前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。
189 3
|
8天前
|
C# 开发者
C# 一分钟浅谈:Code Contracts 与契约编程
【10月更文挑战第26天】本文介绍了 C# 中的 Code Contracts,这是一个强大的工具,用于通过契约编程增强代码的健壮性和可维护性。文章从基本概念入手,详细讲解了前置条件、后置条件和对象不变量的使用方法,并通过具体代码示例进行了说明。同时,文章还探讨了常见的问题和易错点,如忘记启用静态检查、过度依赖契约和性能影响,并提供了相应的解决建议。希望读者能通过本文更好地理解和应用 Code Contracts。
21 3
|
29天前
|
安全 C# 数据安全/隐私保护
实现C#编程文件夹加锁保护
【10月更文挑战第16天】本文介绍了两种用 C# 实现文件夹保护的方法:一是通过设置文件系统权限,阻止普通用户访问;二是使用加密技术,对文件夹中的文件进行加密,防止未授权访问。提供了示例代码和使用方法,适用于不同安全需求的场景。