C#文件操作小结

File类与FileInfo类对比:
在这里插入图片描述
在这里插入图片描述
通过查看两个类的定义的底层代码我们可以发现,File类是静态的,它内部的方法也都是静态的;而FinleInfo类是非静态的,也就是说,在使用的时候必须要实例化后通过它的对象名来进行操作,还有一个小细节,FileInfo类还有一个修饰sealed代表它同时是一个密封类,意味着我们不能继承这个类也就不存在说重写它内部的方法了。
至于说两者的方法都是大同小异的,很多都是重复的,如下面的例子:
(1)推断文件是否存在Exists方法
返回bool型,假设path为空或者没有权限,则返回false
File:推断C盘根文件夹下有没有test.txt文件:
File.Exists(“C:\test.txt”)

FileInfo:
FileInfo fileinfo = new FileInfo(“C:\test.txt”)
if(fileinfo.Exists){}

(2)创建文件用Create方法
File类的Create方法有4中重载方法:
public static FileStream Create(string path)
public static FileStream Create(string path,int bufferSize)
public static FileStream Create(string path,int bufferSize,FileOptions options)
public static FileStream Create(string path,int bufferSize,FileOptions options,FileSecurity fileSecurity)

File类Create方法參数说明
path 文件名称
bufferSize 用于读取和写入文件的已放入缓冲区的字节数
options FileOptions值之中的一个,它描写叙述怎样创建或改写该文件
fileSecurity FileSecurity值之中的一个,它确定文件的訪问控制和审核安全性

File类:
File.Create(“C:\test.txt”)
FileInfo类:
FileInfo fileinfo = new FileInfo(“C:\test.txt”)
fileinfo.Create();
(3)拷贝文件用File类的Copy方法以及FileInfo类的CopyTo方法

File类的Copy方法或者FileInfo类的CopyTo方法
File类的Copy方法有两种重载方式
public static void Copy(string sourceFileName,string destFileName)
public static void Copy(string sourceFileName,string destFileName,bool overwrite)
sourceFileName表示要复制的文件,destFileName表示目标文件的名称,不能是文件夹,假设是第一种重载,则目标文件參数不能是现有文件。
overwrite表示能否够改写目标文件
将C盘根文件夹下的test.txt文本文件拷贝到D盘根文件夹下:
(这边注意措辞,说明D盘根文件夹下是没有test.txt文件的)
File.Copy(“C:\test.txt”,“D:\test.txt”)
FileInfo类的CopyTo方法也有两种重载方式
public FileInfo CopyTo(string destFileName)
public FileInfo CopyTo(string destFileName,bool overwrite)
FileInfo fileinfo = new FileInfo(“C:\test.txt”);
fileinfo.CopyTo(“D:\test.txt”,true);
(4)移动文件用File类的Move方法和FileInfo类的MoveTo方法
File类-Move方法-
public static void Move(string sourceFileName,string destFileName)
File.Move(“C:\test.txt”,“D:\test.txt”)
FileInfo类-MoveTo方法-publicvoid MoveTo(string destFileName)
FileInfo fileinfo = new FileInfo(“C:\test.txt”);
fileinfo.MoveTo(“D:\test.txt”);

(5)删除文件用Delete方法
File类-Delete方法-public staticvoid Delete(string path)
File.Delete(“C:\test.txt”)
FileInfo类-Delete方法-publicvoid Delete(string path)
FileInfo fileinfo = new FileInfo(“C:\test.txt”);
fileinfo.Delete(“D:\test.txt”);

但是通过观察我们也发现了很明显不同的地方,File中的方法都是需要传入参数的,而FileInfo中的方法则不需要再传入参数了,其实程序这样设计也很合理,因为FileInfo在创建对象的时候已经明确知道是哪一个文件对象了,后边再执行方法都是对这个文件的操作;而File类则不同,它没有对象的概念,每次操作都必须明确传入文件的参数。这样我们就能推断出,后期当我们需要操作文件的时候到底用哪一个呢?其实用哪一个都没有明确的规定只要功能实现即可,但是通过上述方法的总结我们发现,如果仅仅是对一个文件操作一次即可,那么建议使用File效率会高一些,如果是对一个文件需要多次操作,那么使用FileInfo即可,至于说里边涉及到的什么安全不安全的问题,个人觉得对于初学者来说意义不大!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CC是C是一C是一种C是一种编C是一种编程C是一种编程语C是一种编程语言C是一种编程语言,C是一种编程语言,由C是一种编程语言,由DC是一种编程语言,由DennisC是一种编程语言,由Dennis RitchC是一种编程语言,由Dennis RitchieC是一种编程语言,由Dennis Ritchie在C是一种编程语言,由Dennis Ritchie在197C是一种编程语言,由Dennis Ritchie在1972C是一种编程语言,由Dennis Ritchie在1972年C是一种编程语言,由Dennis Ritchie在1972年开C是一种编程语言,由Dennis Ritchie在1972年开发C是一种编程语言,由Dennis Ritchie在1972年开发。C是一种编程语言,由Dennis Ritchie在1972年开发。它C是一种编程语言,由Dennis Ritchie在1972年开发。它是C是一种编程语言,由Dennis Ritchie在1972年开发。它是一C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 CC是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 CC是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程语C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程语言C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程语言的C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程语言的基C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程语言的基础C是一种编程语言,由Dennis Ritchie在1972年开发。它是一种面向过程的语言,广泛用于系统程序设计、操作系统、编译器、嵌入式系统等领域。 C的特点包括简洁、高效、可移植、易学易用、强大的控制结构和指针等。 C语言也成为很多其他高级编程语言的基础。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值