C#返回当前系统所有可用驱动器符号的方法


Posted in Python onApril 18, 2015

本文实例讲述了C#返回当前系统所有可用驱动器符号的方法。分享给大家供大家参考。具体如下:

// The initial C# code for the "plain" WMI query was generated by
// WMI Code Generator, Version 5.00, //http://www.robvanderwoude.com/wmigen.php
using System;
using System.Management;
using System.Collections.Generic;
namespace RobvanderWoude
{
 public class ListDrives
 {
  public static int Main( string[] args )
  {
   try
   {
    string computer = string.Empty;
    #region Command line parsing
    // Only 1 optional argument allowed: a remote computer name
    if ( args.Length > 1 )
    {
     throw new Exception( "Invalid command line arguments" );
    }
    if ( args.Length == 1 )
    {
     // We'll display a 'friendly' message if help was requested
     if ( args[0].StartsWith( "/" ) || args[0].StartsWith( "-" ) )
     {
      switch ( args[0].ToUpper( ) )
      {
       case "/?":
       case "-?":
       case "/H":
       case "-H":
       case "--H":
       case "/HELP":
       case "-HELP":
       case "--HELP":
        return WriteError( string.Empty );
       default:
        return WriteError( "Invalid command line argument" );
      }
     }
     else
     {
      computer = "\\\\" + args[0] + "\\";
     }
    }
    #endregion
    string wmins = computer + "root\\CIMV2";
    ManagementObjectSearcher searcher = new ManagementObjectSearcher( wmins, "SELECT * FROM Win32_LogicalDisk" );
    List<string> drives = new List<string>( );
    foreach ( ManagementObject queryObj in searcher.Get( ) )
    {
     drives.Add( queryObj["DeviceID"].ToString( ) );
    }
    drives.Sort( );
    string drivelist = "";
    foreach ( string drive in drives )
    {
     drivelist += ( drive + " " );
    }
    Console.WriteLine( drivelist.Trim( ) );
    return 0;
   }
   catch ( Exception e )
   {
    return WriteError( e );
   }
  }
  public static int WriteError( Exception e )
  {
   return WriteError( e == null ? null : e.Message );
  }
  public static int WriteError( string errorMessage )
  { 
   string fullpath = Environment.GetCommandLineArgs( ).GetValue( 0 ).ToString( );
   string[] program = fullpath.Split( '\\' );
   string exename = program[program.GetUpperBound( 0 )];
   exename = exename.Substring( 0, exename.IndexOf( '.' ) );
   if ( string.IsNullOrEmpty( errorMessage ) == false )
   {
    Console.Error.WriteLine( );
    Console.ForegroundColor = ConsoleColor.Red;
    Console.Error.Write( "ERROR: " );
    Console.ForegroundColor = ConsoleColor.White;
    Console.Error.WriteLine( errorMessage );
    Console.ResetColor( );
   }
   Console.Error.WriteLine( );
   Console.Error.WriteLine( exename + ", Version 1.10" );
   Console.Error.WriteLine( "List all drive letters in use on the specified computer" );
   Console.Error.WriteLine( );
   Console.Error.Write( "Usage: " );
   Console.ForegroundColor = ConsoleColor.White;
   Console.Error.Write( exename.ToUpper( ) );
   Console.Error.WriteLine( " [ computername ]" );
   Console.ResetColor( );
   Console.Error.WriteLine( );
   Console.Error.WriteLine( "Where: 'computername' is the (optional) name of a remote computer" );
   Console.Error.WriteLine( " (default if not specified: local computer)" );
   Console.Error.WriteLine( );
   Console.Error.WriteLine( "Written by Rob van der Woude" );
   return 1;
  }
 }
}

希望本文所述对大家的C#程序设计有所帮助。

Python 相关文章推荐
Python进程通信之匿名管道实例讲解
Apr 11 Python
Python使用tablib生成excel文件的简单实现方法
Mar 16 Python
Python实现利用163邮箱远程关电脑脚本
Feb 22 Python
Windows下python3.6.4安装教程
Jul 31 Python
让代码变得更易维护的7个Python库
Oct 09 Python
Python把对应格式的csv文件转换成字典类型存储脚本的方法
Feb 12 Python
Python3标准库总结
Feb 19 Python
Python3.4学习笔记之 idle 清屏扩展插件用法分析
Mar 01 Python
Django 多环境配置详解
May 14 Python
python修改微信和支付宝步数的示例代码
Oct 12 Python
Python实战之实现简易的学生选课系统
May 25 Python
详细介绍python操作RabbitMq
Apr 12 Python
python关闭windows进程的方法
Apr 18 #Python
python使用Queue在多个子进程间交换数据的方法
Apr 18 #Python
python获取当前计算机cpu数量的方法
Apr 18 #Python
使用Python编写vim插件的简单示例
Apr 17 #Python
用Python登录Gmail并发送Gmail邮件的教程
Apr 17 #Python
基于Python实现的百度贴吧网络爬虫实例
Apr 17 #Python
python中dir函数用法分析
Apr 17 #Python
You might like
PHP源码之 ext/mysql扩展部分
2009/07/17 PHP
PHP封装的HttpClient类用法实例
2015/06/17 PHP
示例详解Laravel重置密码代码重构
2016/08/10 PHP
thinkPHP事务操作简单案例分析
2019/10/17 PHP
js监听输入框值的即时变化onpropertychange、oninput
2011/07/13 Javascript
jquery自定义下拉列表示例
2014/04/25 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
JavaScript中的闭包介绍
2015/03/15 Javascript
理解javascript函数式编程中的闭包(closure)
2016/03/08 Javascript
jQuery实现图片加载完成后改变图片大小的方法
2016/03/29 Javascript
轻松掌握jQuery中wrap()与unwrap()函数的用法
2016/05/24 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
Javascript 6里的4个新语法
2016/08/25 Javascript
ionic3 懒加载
2017/08/16 Javascript
开发Vue树形组件的示例代码
2017/12/21 Javascript
详解NODEJS的http实现
2018/01/04 NodeJs
jQuery实现列表的增加和删除功能
2018/06/14 jQuery
如何在项目中使用log4.js的方法步骤
2019/07/16 Javascript
封装一下vue中的axios示例代码详解
2020/02/16 Javascript
[01:09:24]Ti4开幕式
2014/07/19 DOTA
python PyTorch预训练示例
2018/02/11 Python
查看django执行的sql语句及消耗时间的两种方法
2018/05/29 Python
Python面向对象基础入门之设置对象属性
2018/12/11 Python
pandas DataFrame的修改方法(值、列、索引)
2019/08/02 Python
TensorFlow2.1.0最新版本安装详细教程
2020/04/08 Python
什么是python的函数体
2020/06/19 Python
python中altair可视化库实例用法
2021/01/26 Python
Net-A-Porter美国官网:全球时尚奢侈品名站
2017/02/11 全球购物
New Era英国官网:美国棒球帽品牌
2018/03/21 全球购物
大学生毕业的自我评价分享
2014/01/02 职场文书
大学生创业感言
2014/01/25 职场文书
七一讲话心得体会
2014/09/05 职场文书
2014年小学安全工作总结
2014/12/04 职场文书
网上祭英烈活动总结
2015/02/04 职场文书
中学教师师德师风承诺书
2015/04/28 职场文书
2015年英语教师工作总结
2015/05/20 职场文书