常用的文件操作方法-代码示例

 

using  System;
using  System.IO;
using  System.Security;

namespace  demoSystemIOPath
{
    
class  Program
    {
        
static   void  Main( string [] args)
        {
            Console.Clear();
            Program.ShowMenu();
            
while  ( true )
            {
                
char [] commandCode  =  Console.ReadLine().ToCharArray();
                
if  (commandCode.Length  !=   0 )
                {
                    
switch  (commandCode[ 0 ])
                    {
                        
case   ' A ' :
                        
case   ' a ' :
                            Program.ChangeExtension();  
//  修改文件扩展名
                             break ;
                        
case   ' B ' :
                        
case   ' b ' :
                            Program.CombineString(); 
//  合并路径字符串
                             break ;
                        
case   ' C ' :
                        
case   ' c ' :
                            Program.GetDirectoryName(); 
//  获得指定目录字符串的目录信息
                             break ;
                        
case   ' D ' :
                        
case   ' d ' :
                            Program.GetExtension(); 
//  获得文件扩展名
                             break ;
                        
case   ' E ' :
                        
case   ' e ' :
                            Program.GetFileName(); 
//  获得文件名
                             break ;
                        
case   ' F ' :
                        
case   ' f ' :
                            Program.GetFileNameWithoutExtension(); 
//  获得不带扩展名的文件名
                             break ;
                        
case   ' G ' :
                        
case   ' g ' :
                            Program.GetFullPath(); 
//  获得文件/路径的绝对路径
                             break ;
                        
case   ' H ' :
                        
case   ' h ' :
                            Program.GetInvalidFileNameChars(); 
//  获得不合法的文件名字符
                             break ;
                        
case   ' I ' :
                        
case   ' i ' :
                            Program.GetInvalidPathChars(); 
//  获得不合法的路径字符
                             break ;
                        
case   ' J ' :
                        
case   ' j ' :
                            Program.GetRandomFileName(); 
//  获得强随机文件(夹)名称
                             break ;
                        
case   ' K ' :
                        
case   ' k ' :
                            Program.GetRootPath(); 
//  获得指定路径的根目录信息
                             break ;
                        
case   ' L ' :
                        
case   ' l ' :
                            Program.GetTempFileName(); 
//  创建临时文件
                             break ;
                        
case   ' M ' :
                        
case   ' m ' :
                            Program.GetTempPath(); 
//  返回系统当前的临时文件加路径
                             break ;
                        
case   ' N ' :
                        
case   ' n ' :
                            Program.HasExtension(); 
//  判断路径字符串是否包含扩展名
                             break ;
                        
case   ' O ' :
                        
case   ' o ' :
                            Program.IsPathRooted(); 
//  判断路径字符产包含绝对路径还是相对路径
                             break ;
                        
case   ' Q ' :
                        
case   ' q ' :
                            
return ;
                    }
                }
            }
        }

        
static   public   void  ChangeExtension()  //  修改文件扩展名
        {
            Console.WriteLine(
@" 请输入需要更改扩展名的路径字符串(相对/绝对路径): " );
            
string  pathString  =  Console.ReadLine();  //  读入路径字符串
            Console.WriteLine( @" 请输入目标扩展名或直接回车移除扩展名(包含句点): " );
            
string  extenionString  =  Console.ReadLine();  //  读入目标扩展名
             string  destString  =   "" //  储存修改后的路径字符串
            
//  判断文件/路径是否存在
             if  ( ! (File.Exists(pathString))  ||  (Directory.Exists(pathString)))
            {
                Console.WriteLine(
@" 路径/文件不存在。 " );
                
return ;
            }
            
try
            {
                
//  获得修改后的文件字符串,若extensionString为null则取出扩展名
                destString  =  Path.ChangeExtension(pathString, extenionString);
                
//  文件重命名的实质就是移动文件
                File.Move(pathString, destString);
                
//  结束
                Console.WriteLine( @" 扩展名更改成功! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , destString);
            }
            
catch  (ArgumentException)
            {
                
//  指定路径字符串包含一个或多个不合法的字符   
                Console.WriteLine( @" 指定的路径字符串包含不合法的字符。 " );
                
return ;
            }
        }

        
static   public   void  CombineString()  //  合并路径字符串
        {
            Console.WriteLine(
@" 请输入路径字符串A: " );
            
string  pathA  =  Console.ReadLine();  //  读入第一个路径字符串
            Console.WriteLine( @" 请输入路径字符串B: " );
            
string  pathB  =  Console.ReadLine();  //  读入第二个路径字符串
             string  pathResult  =   "" //  储存合并后的结果
             try
            {
                
//  合并两个路径字符串
                pathResult  =  Path.Combine(pathA, pathB);
                
//  结束
                Console.WriteLine( @" 合并结束。 " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , pathResult);
            }
            
catch  (ArgumentNullException)
            {
                
//  包含空字符串
                Console.WriteLine( @" 路径字符串不能为空。 " );
                
return ;
            }
            
catch  (ArgumentException)
            {
                
//  指定路径字符串包含一个或多个不合法的字符   
                Console.WriteLine( @" 指定的路径字符串包含不合法的字符。 " );
                
return ;
            }
        }

        
static   public   void  GetDirectoryName()  //  获得指定目录字符串的目录信息
        {
            Console.WriteLine(
@" 请输入路径字符串: " );
            
string  pathString  =  Console.ReadLine();  //  获得路径字符串
             string  resultString  =   "" //  储存结果
             try
            {
                Path.GetDirectoryName(pathString);  
//  提取路径信息            
                
//  结束
                Console.WriteLine( @" 获取目录信息结束。 " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , resultString);
            }
            
catch  (ArgumentException)
            {
                
//  路径字符串中包含一个或多个不合法的字符
                Console.WriteLine( @" 路径字符串中包含一个或多个不合法的字符。 " );
                
return ;
            }
            
catch  (PathTooLongException)
            {
                
//  路径字符串的长度超过系统定义的最大长度
                Console.WriteLine( @" 路径字符串的长度超过系统定义的最大长度。 " );
                
return ;
            }
        }

        
static   public   void  GetExtension()  //  获得文件扩展名
        {
            Console.WriteLine(
@" 请输入文件名(包含路径): " );
            
string  fileName  =  Console.ReadLine();  //  获得文件名
             string  fileExtension  =   "" //  储存文件扩展名
             try
            {
                fileExtension 
=  Path.GetExtension(fileName);  //  获得文件扩展名
                
//  完成
                Console.WriteLine( @" 操作成功! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , fileExtension);
            }
            
catch  (ArgumentException)
            {
                
//  文件名包含一个或多个不合法的字符
                Console.WriteLine( @" 文件名包含一个或多个不合法的字符。 " );
                
return ;
            } 
        }

        
static   public   void  GetFileName()  //  获得路径最后一个目录字符后面的字符串
        {
            Console.WriteLine(
@" 请输入路径字符串: " );
            
string  pathName  =  Console.ReadLine();  //  获取路径字符串
             string  fileName  =   "" //  储存文件名
             try
            {
                fileName 
=  Path.GetFileName(pathName);  //  获得文件名
                
//  完成
                Console.WriteLine( @" 操作成功! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , fileName);
            }
            
catch  (ArgumentException)
            {
                
//  路径字符串包含一个或多个不合法字符
                Console.WriteLine( @" 路径字符串包含一个或多个不合法字符。 " );
                
return ;
            }
        }

        
static   public   void  GetFileNameWithoutExtension()  //  获得不包含扩展名的文件名
        {
            Console.WriteLine(
@" 请输入文件名: " );
            
string  fileName  =  Console.ReadLine();  //  获得全文件名
             string  fileNameWithoutExtension  =   "" //  储存文件名
             try
            {
                
//  获得文件名
                fileNameWithoutExtension  =
                    Path.GetFileNameWithoutExtension(fileName);
                
//  完成
                Console.WriteLine( @" 操作成功! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , fileNameWithoutExtension);
            }
            
catch  (ArgumentException)
            {
                
//  文件名(路径)包含一个或多个不合法字符
                Console.WriteLine( @" 文件名(路径)包含一个或多个不合法字符。 " );
                
return ;
            }
        }

        
static   public   void  GetFullPath()  //  获得路径/文件的绝对路径
        {
            Console.WriteLine(
@" 请输入相对路径: " );
            
string  relativePath  =  Console.ReadLine();  //  获得相对路径
             string  absolutePath  =   "" //  储存绝对路径
             try
            {
                absolutePath 
=  Path.GetFullPath(relativePath);  //  获得绝对路径
                
//  完成
                Console.WriteLine( @" 操作成功! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , absolutePath);
            }
            
catch  (ArgumentNullException)
            {
                
//  相对路径为空
                Console.WriteLine( @" 相对路径为空。 " );
                
return ;
            }
            
catch  (ArgumentException)
            {
                
//  相对路径中包含一个或多个不合法的字符
                Console.WriteLine( @" 相对路径中包含一个或多个不合法的字符。 " );
                
return ;
            }
            
catch  (SecurityException)
            {
                
//  没有权限执行该操作
                Console.WriteLine( @" 没有权限执行该操作。 " );
                
return ;
            }
            
catch  (NotSupportedException)
            {
                
//  相对路径中包含冒号
                Console.WriteLine( @" 相对路径中包含冒号。 " );
                
return ;
            }
            
catch  (PathTooLongException)
            {
                
//  指定的路径、文件名或者两者都超出了系统定义的最大长度
                Console.WriteLine( @" 指定的路径、文件名或者两者都超出了系统定义的最大长度。 " );
                
return ;
            }
        }

        
static   public   void  GetInvalidFileNameChars()  //  获得不合法的文件名字符
        {
            Console.WriteLine(
@" 不合法的文件名字符: " );
            
char [] charArray  =  Path.GetInvalidFileNameChars();  //  获得不合法的文件名字符数组
            
//  输出结果
             foreach  ( char  invalidChar  in  charArray)
            {
                Console.WriteLine(invalidChar);
            }
            
//  完成
            Console.WriteLine( @" 操作完成! " );
        }

        
static   public   void  GetInvalidPathChars()  //  获得不合法的路径字符
        {
            Console.WriteLine(
@" 不合法的路径字符: " );
            
char [] charArray  =  Path.GetInvalidPathChars();  //  获得不合法的路径字符数组
            
//  输出结果
             foreach  ( char  invalidChar  in  charArray)
            {
                Console.WriteLine(invalidChar);
            }
            
//  完成
            Console.WriteLine( @" 操作完成! " );
        }

        
static   public   void  GetRootPath()  //  获得指定路径的根目录信息
        {
            Console.WriteLine(
@" 请输入指定的路径字符串: " );
            
string  pathString  =  Console.ReadLine();  //  获得指定的路径字符串 
             string  rootString  =   "" //  储存根目录信息
             try
            {
                rootString 
=  Path.GetPathRoot(pathString);  //  获得根目录信息
                
//  完成
                Console.WriteLine( @" 操作完成! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , rootString);
            }
            
catch  (ArgumentException)
            {
                
//  指定路径字符串中包含一个或多个不合法的字符,或传递的字符串为空
                Console.WriteLine( @" 指定路径字符串中包含一个或多个不合法的字符,或传递的字符串为空。 " );
                
return ;
            }
        }

        
static   public   void  GetRandomFileName()  //  获得强随机文件(夹)名称
        {
            
string  fileName  =  Path.GetRandomFileName();  //  获得强随机文件(夹)名称
            Console.WriteLine( @" 操作完成! " );  //  完成
            
//  输出结果
            Console.WriteLine( @" 获得的随机文件(夹)名称为:{0} " , fileName);
        }

        
static   public   void  GetTempFileName()  //  创建临时文件
        {
            
string  fileName  =   "" //  储存创建临时文件的路径及名称
             try
            {
                
//  创建临时文件
                fileName  =  Path.GetTempFileName();
                
//  完成
                Console.WriteLine( @" 操作完成! " );
                
//  输出结果
                Console.WriteLine( @" 生成的临时文件为:{0} " , fileName);
            }
            
catch  (IOException)
            {
                
//  发生 I/O 错误,例如没有提供唯一的临时文件名
                
//  - 或 -
                
//  此方法无法创建临时文件
                Console.WriteLine( @" 无法创建临时文件。 " );
                
return ;
            }
        }

        
static   public   void  GetTempPath()  //  返回系统当前的临时文件夹路径
        {
            
string  tempPath  =   "" //  储存系统当前临时文件夹路径
             try
            {
                tempPath 
=  Path.GetTempPath();  //  获得系统当前临时文件夹路径
                
//  完成
                Console.WriteLine( @" 操作完成! " );
                
//  输出结果
                Console.WriteLine( @" 系统当前的临时文件夹路径为:{0} " , tempPath);
            }
            
catch  (SecurityException)
            {
                
//  没有进行此操作的权限
                Console.WriteLine( @" 没有进行此项操作的权限! " );
                
return ;
            }
        }

        
static   public   void  HasExtension()  //  判断路径字符串是否包含扩展名
        {
            Console.WriteLine(
@" 请输入指定的路径字符串: " );
            
string  pathString  =  Console.ReadLine();  //  获得指定的路径字符串
             string  hasExtension  =   "" //  储存结果
             try
            {
                hasExtension 
=  Path.HasExtension(pathString)  ?   @" "  :  @" " //  执行判断
                
//  完成
                Console.WriteLine( @" 操作完成! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , hasExtension);
            }
            
catch  (ArgumentException)
            {
                
//  指定的路径字符串中包含一个或多个非法字符
                Console.WriteLine( @" 指定的路径字符串中包含一个或多个非法字符。 " );
                
return ;
            }
        }

        
static   public   void  IsPathRooted()  //  判断路径字符产包含绝对路径还是相对路径
        {
            Console.WriteLine(
@" 请输入指定的路径字符串: " );
            
string  pathString  =  Console.ReadLine();  //  获得指定的路径字符串
             string  isRooted  =   @"" //  储存结果
             try
            {
                isRooted 
=  Path.IsPathRooted(pathString)  ?   @" 绝对路径 "  :  @" 相对路径 " //  执行判断
                
//  完成
                Console.WriteLine( @" 操作完成! " );
                
//  输出结果
                Console.WriteLine( @" 结果为:{0} " , isRooted);
            }
            
catch  (ArgumentException)
            {
                
//  指定的路径字符串中包含一个或多个非法字符
                Console.WriteLine( @" 指定的路径字符串中包含一个或多个非法字符。 " );
                
return ;
            }
        }

        
static   private   void  ShowMenu()
        {
            Console.WriteLine(
@" ======================================== " );
            Console.WriteLine(
@" 操作菜单 " );
            Console.WriteLine(
@" ======================================== " );
            Console.WriteLine(
@" [A].Path.ChangeExtension " );
            Console.WriteLine(
@" [B].Path.Combine " );
            Console.WriteLine(
@" [C].Path.GetDirectoryName " );
            Console.WriteLine(
@" [D].Path.GetExtension " );
            Console.WriteLine(
@" [E].Path.GetFileName " );
            Console.WriteLine(
@" [F].Path.GetFileNameWithoutExtension " );
            Console.WriteLine(
@" [G].Path.GetFullPath " );
            Console.WriteLine(
@" [H].Path.GetInvalidFileNameChars " );
            Console.WriteLine(
@" [I].Path.GetInvalidPathChars " );
            Console.WriteLine(
@" [J].Path.GetRandomFileName " );
            Console.WriteLine(
@" [K].Path.GetPathRoot " );
            Console.WriteLine(
@" [L].Path.GetTempFileName " );
            Console.WriteLine(
@" [M].Path.GetTempPath " );
            Console.WriteLine(
@" [N].Path.HasExtension " );
            Console.WriteLine(
@" [O].Path.IsPathRooted " );
            Console.WriteLine(
@" [Q].退出 " );
            Console.WriteLine(
@" ======================================== " );
        }
    }
}

你可能感兴趣的:(常用的文件操作方法-代码示例)