File类和FileInfo类
             C#语言中通过File和FileInfo类来创建、复制、删除、移动和打开文件。在File类中提供了一些静态方法,使用这些方法可以完成上述功能,但File类不能建立对象。FileInfo类使用方法和File类基本相同,但FileInfo类能建立对象。在使用这两个类时需要引用System.IO命名空间。这里重点介绍File类的使用方法。
             File类常用的方法
            File类常用的方法如下,File类所有方法都是静态方法。
            AppendText:参数是文件路径,创建参数指定文件的StreamWriter类对象,可以向该文件添加字符或字符串数据。如文件不存在,就创建该文件。
            Copy:复制参数指定的文件到新文件夹。
            Create:按参数指定的路径建立新文件
            Delete:删除参数指定的文件。
            Exists:检查参数指定路径的文件是否存在,存在,返回true。
            GetAttributes:返回参数指定文件的属性。
            GetCreationTime:返回参数指定的文件或文件夹的创建日期和时间。
            GetLastAccessTime:返回参数指定的文件或文件夹的最后一次访问日期和时间。
            GetLastWriteTime:返回参数指定的文件或文件夹最后一次修改的日期和时间。
            Move:移动参数指定的文件到新文件夹。
            Open:参数是文件路径,创建参数指定文件的可以读写的FileStream类对象。
            OpenRead:参数是文件路径,创建参数指定文件的只读FileStream类对象。
            OpenWrite:参数是文件路径,返回参数指定文件的只写FileStream类对象。
            SetAttributes:设置参数指定文件的属性。
            SetCreationTime:设置参数指定文件的创建日期和时间。
            SetLastAccessTime:设置参数指定文件的最后一次访问日期和时间。
            SetLastWriteTime:设置参数指定文件最后一次修改的日期和时间。
             下面通过程序实例来介绍其中主要方法的使用。
             判断文件是否存在的方法File.Exists
             方法声明如下:public static bool Exists(string path);该方法判断参数指定的文件是否存在,参数path指定文件路径。如果文件存在,返回true,如果文件不存在,或者访问者不具有访问此文件的权限,或者path描述一个目录,返回false。下面的代码段判断是否存在c:\Example\e1.txt文件:
             if(File.Exists(@"c:\Example\e1.txt"))   {…}//处理代码
             文件删除方法File.Delete
             方法声明如下:public static void Delete(string path);该方法删除参数指定的文件,参数path指定要删除的文件的相对或绝对路径。下面的程序删除用户指定文件。
            using System;
            using System.IO;//使用文件必须引入的命名空间
            class DeleteFile
            { static void Main()
             { Console.WriteLine("请键入要删除的文件的路径:");
             string path=Console.ReadLine();//从键盘读入路径,输入回车结束
             if(File.Exists(@path))//@表示其后字符串不包括转义字符
             File.Delete(@path);
             else
             Console.WriteLine("文件不存在!");
             }
            }
             文件复制方法File.Copy
             该方法声明如下:
            public static void Copy(string sourceFileName,string destFileName,bool overwrite);
             该方法将参数sourceFileName指定文件拷贝到参数destFileName指定的目录,修改文件名为参数destFileName指定的文件名,如果OverWrite为true,而且文件名为destFileName的文件已存在的话,将会被复制过去的文件所覆盖。例子如下:
            using System;
            using System.IO;//使用文件必须引入的命名空间
            class CopyFile
            { static void Main()
             { Console.WriteLine("请键入要拷贝的源文件的路径:");
             string path=Console.ReadLine();//从键盘读入路径,输入回车结束
             Console.WriteLine("请键入要拷贝的目的文件的路径(包括文件名):");
             string path1=Console.ReadLine();//从键盘读入路径,输入回车结束
             if(File.Exists(@path))//@表示其后字符串不包括转义字符
             { if(!File.Exists(@path1))//如果不存在目的文件,拷贝
             File.Copy(@path,@path1,true);
             else
             Console.WriteLine("目的文件存在或目的路径非法!");
             }
             else
             Console.WriteLine("源文件不存在!");
             }
            }
             文件移动方法File.Move和FileInfo.MoveTo
             该方法声明如下:
             public static void Move(string sourceFileName,string destFileName);
             该方法将参数sourceFileName指定文件移动到参数destFileName指定的目录,修改文件名为参数destFileName指定的文件名,如果目标文件已经存在,或者路径格式不对,将引发异常。注意,只能在同一个逻辑盘下进行文件转移。如果试图将c盘下的文件转移到d盘,将发生错误。下面的代码可以将c:\Example下的e1.txt文件移动到c盘根目录下。File.Move(@"c:\Example\BackUp.txt",@"c:\BackUp.txt");
             FileInfo类方法MoveTo可以将一个逻辑盘的文件移到另一个逻辑盘,例子如下:
            using System;
            using System.IO;//使用文件必须引入的命名空间
            class MoveFile
            { static void Main()
             { Console.WriteLine("请键入要移动的源文件的路径:");
             string path=Console.ReadLine();//从键盘读入路径,输入回车结束
             Console.WriteLine("请键入要移动的目的文件的路径(包括文件名):");
             string path1=Console.ReadLine();//从键盘读入路径,输入回车结束
             if(File.Exists(@path))//@表示其后字符串不包括转义字符
             { if(!File.Exists(@path1))
             { FileInfo fi=new FileInfo(@path);//使用FileInfo必须建立对象
             fi.MoveTo(@path1);//fi所代表的文件移到path1指定的位置
             //File.Move(@path,@path1);//如在同一磁盘可使用此句替换前2句
             }
             else
             Console.WriteLine("目的文件存在或路径非法!");
             }
             else
             Console.WriteLine("源文件不存在!");
             }
            }
             设置文件属性方法File.SetAttributes
             方法声明如下:
            public static void SetAttributes(string path,FileAttributes fileAttributes);
             参数path指定要修改属性的文件的路径;参数fileAttributes指定要修改的文件属性,可以是如下数值:Archive(存档)、Compressed(压缩文件)、Directory(目录文件)、Encrypted(加密)、Hidden(隐藏)、Normal(普通文件)、ReadOnly(只读文件)、System(系统文件)、Temporary(临时文件)。下面的代码可以设置文件c:\e1.txt的属性为只读、隐藏。
            File.SetAttributes(@"c:\e1.txt",FileAttributes.ReadOnly|FileAttributes.Hidden);
             
得到文件的属性方法File.GetAttributes
             方法声明如下:public static FileAttributes GetAttributes(string path);方法返回参数指定的文件的FileAttributes,如果未找到路径或文件,返回-1,
             例子如下:
            using System;
            using System.IO;//使用文件必须引入的命名空间
            class GetFileAttributes
            { static void Main()
             { Console.WriteLine("请键入要得到属性的文件路径:");
             string path=Console.ReadLine();//从键盘读入路径,输入回车结束
             if(File.Exists(@path))//@表示其后字符串不包括转义字符
             { FileAttributes attributes=File.GetAttributes(path);
             if((attributes&FileAttributes.Hidden)==FileAttributes.Hidden)
             Console.WriteLine("隐藏文件");
             else
             Console.WriteLine("不是隐藏文件");
             //
得到文件其它信息
             FileInfo fileInfo=new FileInfo(@path);
             Console.WriteLine(fileInfo.FullName+"文件长度="+
             fileInfo.Length+",建立时间="+fileInfo.CreationTime);
             //也可用如下语句
得到文件其它信息
             Console.WriteLine("建立时间="+File.GetCreationTime(@path)
             +"最后
修改时间="+File.GetLastWriteTime(@path)+
             "访问时间="+File.GetLastAccessTime(@path));
             }
             else
             Console.WriteLine("文件不存在!");
             }
            }