C#返回當前系統所有可用驅動器符號

xf3f 9年前發布 | 712 次閱讀 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 )
    {
        /*
        ListDrives,  Version 1.10
        List all drive letters in use on the specified computer

        Usage:  LISTDRIVES  [ computername ]

        Where:  'computername'  is the (optional) name of a remote computer
                                (default if not specified: local computer)

        Written by Rob van der Woude
        http://www.robvanderwoude.com
        */

        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" );
        Console.Error.WriteLine( "http://www.robvanderwoude.com" );
        return 1;
    }
}

}</pre>

 本文由用戶 xf3f 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!