一、File类和FileInfo区别在于前者是静态类,后者需要实例化,实例化时需指定操作文件的路径,单一调用方法建议使用File类,调用快,无需进行实例化,如需在文件系统上进行多种文件操作建议使用FileInfo类,提高效率,无需每次寻找文件,
1、File类
bool a=File.Exists(@"E:\a.txt");//判断文件是否存在
File.Create(@"E:\b.txt");//创建文件,如存在将其内容覆盖掉,路径不存在或文件夹为只读,触发异常
File.Copy(@"E:\b.txt",@"E:\a\b.txt",true);//复制文件,无第三个参数则不允许覆盖同名文件,则反之允许
File.Move(@"E:\a\b.txt","E:\\b.txt");//移动文件,如目标文件已存在,则触发异常
File.Delete("E:\\b.txt");//删除文件
2、FileInfo类
FileInfo fileInfo=new FileInfo(@"E:\b\2.png");//实例化新的FileInfo对象并指定文件路径
bool a=fileInfo.Exists;//判断文件是否存在
fileInfo.Create();//创建新文件
fileInfo.CopyTo(@"E:\b\2.png",true);//复制现有文件到新文件,无第二个参数则不允许覆盖同名文件,则反之允许
fileInfo.MoveTo(@"E:\b\2.png");//移动文件,如目标文件已存在,则触发异常
fileInfo.Delete();//删除文件
Console.WriteLine(fileInfo.Name);//获取文件名称 2.png
Console.WriteLine(fileInfo.CreationTime);//获取创建文件时间 2018/8/27 23:08:20
Console.WriteLine(fileInfo.LastAccessTime);//获取上次访问该文件的时间 2018/8/27 23:05:02
Console.WriteLine(fileInfo.LastWriteTime);//获取上次写入文件时间 2018/8/27 23:05:02
Console.WriteLine(fileInfo.FullName);//获取文件的完整目录 E:\b\2.png
Console.WriteLine(fileInfo.DirectoryName);//获取文件的完整路径 E:\b
Console.WriteLine(fileInfo.IsReadOnly);//获取文件是否只读 False
Console.WriteLine(fileInfo.Length);//获取文件的大小 0
二、Directory类和DirectoryInfo区别也在于前者是静态类,同上。。。
1、Directory类操作文件夹以及目录,因是静态类无需实例化:
Directory.CreateDirectory(@"e:\a");//创建文件夹
Directory.Delete(@"E:\a ");//删除文件
Directory.Delete(@"e:\a",true);//删除文件以及第二个参数删除此文件夹下面的所有子文件
bool a=Directory.Exists(@"e:\a");//判断文件是否存在
Directory.Move(@"e:\b\c.txt",@"e:\a\c.txt");//移动文件 注:两路径需在同一磁盘,新的路径也包含新的文件名
string[] a=Directory.GetFiles("e:\\","*.doc");//获取当前目录下所有的文件以及第二个参数获取指定的文件名
string[] b=Directory.GetDirectories("e:\\","C*");//获取当前目录下所有的文件夹以及第二个参数获取匹配文件夹名
2、DirectoryInfo类
DirectoryInfo di = new DirectoryInfo("E:\\");//实例化新的Directory对象并指定文件夹路径
di.Create();//创建文件夹
di.Delete();//删除文件夹
di.Delete(true);//删除文件夹以及第二个参数为true删除不为空的文件夹
bool a=di.Exists;//判断文件夹是否存在
di.MoveTo(@"e:\b\a");//移动文件 注:两路径需在同一磁盘,新的路径也包含新的文件名
DirectoryInfo[] directoryInfos= di.GetDirectories();//获取当前目录下所有的文件夹返回DirectoryInfo数组
FileInfo[] fileInfos = di.GetFiles();//获取当前目录下所有的文件返回FlieInfo数组
网友评论