返回顶部

收藏

C#返回指定驱动器是否是Fat分区格式

更多
using System;
using System.IO;

namespace RobvanderWoude
{
    class IsFAT
    {
        public static int Main( string[] args )
        {
            try
            {
                if ( args.Length == 0 )
                {
                    return WriteError( string.Empty );
                }
                if ( args.Length > 1 )
                {
                    return WriteError( "Invalid number of arguments." );
                }

                string drive = args[0].ToUpper( );

                DriveInfo[] allDrives = DriveInfo.GetDrives( );

                foreach ( DriveInfo drv in allDrives )
                {
                    if ( drive == drv.Name.Substring( 0, 2 ) )
                    {
                        if ( drv.IsReady )
                        {
                            Console.WriteLine( drv.DriveFormat.ToUpper( ) );
                            if ( drv.DriveFormat == "FAT" || drv.DriveFormat == "FAT32" )
                            {
                                return 0;
                            }
                            else
                            {
                                return 2;
                            }
                        }
                        else
                        {
                            Console.WriteLine( drv.DriveType.ToString( ).ToUpper( ) );
                            return 1;
                        }
                    }
                }
                return WriteError( "Invalid drive specification." );
            }
            catch ( Exception e )
            {
                // Display help text with error message
                return WriteError( e );
            }
        }
        // Code to display help and optional error message, by Bas van der Woude
        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( '.' ) );

            /*
            IsFAT,  Version 1.00
            Return 'errorlevel' 0 if the specified drive is FAT or FAT32 formated

            Usage:    ISFAT  drive:

            Note:     Returns 'errorlevel' 0 if FAT or FAT32, 2 if not, 1 if not ready or invalid

            */
            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( "IsFAT,  Version 1.00" );
            Console.Error.WriteLine( "Return 'errorlevel' 0 if the specified drive is FAT or FAT32 formated" );
            Console.Error.WriteLine( );
            Console.Error.Write( "Usage:    " );
            Console.ForegroundColor = ConsoleColor.White;
            Console.Error.WriteLine( "{0}  drive:", exeName.ToUpper( ) );
            Console.ResetColor( );
            Console.Error.WriteLine( );
            Console.Error.WriteLine( "Note:     Returns 0 if FAT or FAT32, 2 if not, 1 if not ready or invalid." );
            Console.Error.WriteLine( );
            Console.Error.WriteLine( "Written by Rob van der Woude" ); 
            return 1;
        }
    }
}
//该片段来自于http://outofmemory.cn

标签:c#,.net,系统

收藏

0人收藏

支持

0

反对

0

发表评论