本文实例讲述了C#将制定目录文件名转换成大写的方法。分享给大家供大家参考。具体如下:
using System; using System.IO; using System.Linq; namespace RobvanderWoude { class UpCase { static int Main( string[] args ) { string dir = string.Empty; string filespec = string.Empty; char[] trailingbackslash = \"\\\\\".ToCharArray( 0, 1 ); char[] locaseletters = \"abcdefghijklmnopqrstuvwxyz\".ToCharArray( 0, 26 ); bool verbose = false; #region Command Line Parsing switch ( args.Length ) { case 0: return WriteError( string.Empty ); case 1: filespec = args[0].Trim( \'\"\' ); break; case 2: filespec = args[0].Trim( \'\"\' ); if ( args[1].Substring( 0, 2 ).ToUpper( ) == \"/V\" ) { verbose = true; } else { return WriteError( \"Invalid command line switch: \" + args[1] ); } break; default: return WriteError( string.Empty ); } if ( string.IsNullOrWhiteSpace( filespec ) || filespec == \"/?\" ) { return WriteError( string.Empty ); } if ( filespec.IndexOfAny( \"/?\".ToCharArray( 0, 2 ) ) != -1 ) { return WriteError( \"Invalid file specification: \\\"\" + filespec + \"\\\"\" ); } #endregion Command Line Parsing try { // Check if the directory exists try { dir = Path.GetDirectoryName( filespec ); if ( string.IsNullOrWhiteSpace( dir ) ) { dir = Path.GetFullPath( \".\" ); } if ( !Directory.Exists( dir ) ) { return WriteError( \"Directory not found: \\\"\" + dir + \"\\\"\" ); } dir = dir.TrimEnd( trailingbackslash ) + \"\\\\\"; } catch ( ArgumentException ) { return WriteError( \"Parent directory not found\" ); } // Extract the FILE specification (removing the path) string filenames = filespec.Substring( filespec.LastIndexOf( \"\\\\\" ) + 1 ); // Enumerate the files string[] files = Directory.EnumerateFiles( dir, filenames ).ToArray<string>( ); int count = 0; foreach ( string file in files ) { if ( File.Exists( file ) ) { string filename = Path.GetFileName( file ); if ( filename.IndexOfAny( locaseletters ) > -1 ) { count++; string newfilename = dir + filename.ToUpperInvariant( ); File.Move( file, newfilename ); } } } if ( verbose ) { Console.WriteLine( \"{0} matching file{1} renamed\", ( count == 0 ? \"No\" : count.ToString( ) ), ( count == 1 ? string.Empty : \"s\" ) ); } return count; } catch ( Exception e ) { return WriteError( e.Message ); } } public static int WriteError( Exception e ) { return WriteError( e == null ? null : e.Message ); } public static int WriteError( string errorMessage ) { /* UpCase.exe, Version 1.02 Rename specified files to all upper case Usage: UpCase.exe filespec [ /Verbose ] Where: filespec is (are) the file(s) to be renamed (wildcards allowed) /Verbose displays the number of files renamed Notes: Use doublequotes if filespec contains spaces. Return code (\\\"ErrorLevel\\\") equals the number of renamed files. Switch may be abbreviated, e.g. /V instead of /Verbose. Written by Rob van der Woude */ if ( !string.IsNullOrWhiteSpace( errorMessage ) ) { 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( \"UpCase.exe, Version 1.02\" ); Console.Error.WriteLine( \"Rename specified files to all upper case\" ); Console.Error.WriteLine( ); Console.Error.Write( \"Usage: \" ); Console.ForegroundColor = ConsoleColor.White; Console.Error.WriteLine( \"UpCase.exe filespec [ /Verbose ]\" ); Console.ResetColor( ); Console.Error.WriteLine( ); Console.Error.Write( \"Where: \" ); Console.ForegroundColor = ConsoleColor.White; Console.Error.Write( \"filespec\" ); Console.ResetColor( ); Console.Error.WriteLine( \" is (are) the file(s) to be renamed (wildcards allowed)\" ); Console.ForegroundColor = ConsoleColor.White; Console.Error.Write( \" /V\" ); Console.ResetColor( ); Console.Error.WriteLine( \"erbose displays the number of files renamed\" ); Console.Error.WriteLine( ); Console.Error.WriteLine( \"Note: Use doublequotes if filespec contains spaces.\" ); Console.Error.WriteLine( \" Return code (\\\"ErrorLevel\\\") equals the number of renamed files.\" ); Console.Error.Write( \" Switch may be abbreviated, e.g. \" ); Console.ForegroundColor = ConsoleColor.White; Console.Error.Write( \"/V\" ); Console.ResetColor( ); Console.Error.Write( \" instead of \" ); Console.ForegroundColor = ConsoleColor.White; Console.Error.Write( \"/V\" ); Console.ResetColor( ); Console.Error.WriteLine( \"erbose.\" ); Console.Error.WriteLine( ); Console.Error.WriteLine( \"Written by Rob van der Woude\" ); Console.Error.WriteLine( \"http://www.baidu.com\" ); return 0; } } }
希望本文所述对大家的C#程序设计有所帮助。
本文地址:https://www.stayed.cn/item/12499
转载请注明出处。
本站部分内容来源于网络,如侵犯到您的权益,请 联系我