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  ,如需转载请自行联系原作者

相关文章
|
17天前
|
开发框架 前端开发 JavaScript
C# 6.0+JavaScript云LIS系统源码  云LIS实验室信息管理新型解决方案
云LIS是为区域医疗提供临床实验室信息服务的计算机应用程序,可协助区域内所有临床实验室相互协调并完成日常检验工作,对区域内的检验数据进行集中管理和共享,通过对质量控制的管理,最终实现区域内检验结果互认。其目标是以医疗服务机构为主体,以医疗资源和检验信息共享为目标,集成共性技术及医疗服务关键技术,建立区域协同检验,最大化利用有限的医疗卫生资源。
106 1
|
17天前
|
前端开发 Java C#
java/C#语言开发的医疗信息系统11套源码
java/C#语言开发的医疗信息系统11套源码
32 1
|
6天前
|
编译器 C#
C#.Net筑基-类型系统②常见类型 --record是什么类型?
`record`在C#中是一种创建简单、只读数据结构的方式,常用于轻量级数据传输。它本质上是类(默认)或结构体的快捷形式,包含自动生成的属性、`Equals`、`ToString`、解构赋值等方法。记录类型可以继承其他record或接口,但不继承普通类。支持使用`with`语句创建副本。例如,`public record User(string Name, int Age)`会被编译为包含属性、相等比较和`ToString()`等方法的类。记录类型提供了解构赋值和自定义实现,如密封的`sealed`记录,防止子类重写。
|
6天前
|
存储 安全 Unix
C#.Net筑基-类型系统②常见类型--日期和时间的故事
在System命名空间中,有几种表示日期时间的不可变结构体(Struct):DateTime、DateTimeOffset、TimeSpan、DateOnly和TimeOnly。DateTime包含当前本地或UTC时间,以及最小和最大值;DateTimeOffset增加了时区偏移信息,适合跨时区操作。UTC是世界标准时间,而格林尼治标准时间(GMT)不稳定,已被更精确的UTC取代。DateTimeOffset和DateTime提供了转换为UTC和本地时间的方法,以及各种解析和格式化函数。
|
6天前
|
安全 API C#
C#.Net筑基-类型系统②常见类型--枚举Enum
枚举(enum)是C#中的一种值类型,用于创建一组命名的整数常量。它们基于整数类型(如int、byte等),默认为int。枚举成员可指定值,未指定则从0开始自动递增。默认值为0。枚举可以与整数类型互相转换,并可通过`[Flags]`特性表示位域,支持位操作,用于多选场景。`System.Enum`类提供了如`HasFlag`、`GetName`等方法进行枚举操作。
|
6天前
|
存储 C#
C#.Net筑基-类型系统②常见类型--结构体类型Struct
本文介绍了C#中的结构体(struct)是一种用户自定义的值类型,适用于定义简单数据结构。结构体可以有构造函数,能定义字段、属性和方法,但不能有终结器或继承其他类。它们在栈上分配,参数传递为值传递,但在类成员或包含引用类型字段时例外。文章还提到了`readonly struct`和`ref struct`,前者要求所有字段为只读,后者强制结构体存储在栈上,适用于高性能场景,如Span和ReadOnlySpan。
|
17天前
|
存储 运维 BI
基于C#-VC-MSSQL开发的全套PACS系统源码 3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
PACS的功能价值在于通过连接不同的影像设备,存储与管理图像,图像的调用与后处理,实现资源共享,降低成本,达到提高工作效率、提升医疗水平的目地;
21 1
基于C#-VC-MSSQL开发的全套PACS系统源码  3D PACS系统源码:可实现医学影像获取、存档、观片、处理、打印多项应用
|
17天前
|
存储 开发框架 前端开发
C#开发的全套成熟的LIS系统源码JavaScript+SQLserver 2012区域云LIS系统源码
医院云LIS系统是一套成熟的实验室信息管理系统,目前已在多家三级级医院应用,并不断更新。云LIS系统是为病人为中心、以业务处理为基础、以提高检验科室管理水平和工作效率为目标,将医学检验、科室管理和财务统计等检验科室/实验室所有工作进行整合,全面改善检验科室/实验室的工作现状。
24 0
|
17天前
|
开发框架 前端开发 JavaScript
采用C#.Net +JavaScript 开发的云LIS系统源码 二级医院应用案例有演示
技术架构:Asp.NET CORE 3.1 MVC + SQLserver + Redis等 开发语言:C# 6.0、JavaScript 前端框架:JQuery、EasyUI、Bootstrap 后端框架:MVC、SQLSugar等 数 据 库:SQLserver 2012
27 0
|
17天前
|
开发框架 前端开发 .NET
C#编程与Web开发
【4月更文挑战第21天】本文探讨了C#在Web开发中的应用,包括使用ASP.NET框架、MVC模式、Web API和Entity Framework。C#作为.NET框架的主要语言,结合这些工具,能创建动态、高效的Web应用。实际案例涉及企业级应用、电子商务和社交媒体平台。尽管面临竞争和挑战,但C#在Web开发领域的前景将持续拓展。