C#的FileInfo类实现文件操作实例
作者:shichen2014 发布时间:2021-06-30 06:39:44
标签:C#,文件,操作
C#的FileInfo类提供了与File类相同的功能,不同的是FileInfo提供的都是成员方法,使用示例如下所示:
1、读文件:
//创建只读 System.IO.FileStream。
public System.IO.FileStream OpenRead()
//创建使用 UTF8 编码、从现有文本文件中进行读取的 System.IO.StreamReader。
public System.IO.StreamReader OpenText()
2、写文件:
//创建只写 System.IO.FileStream。
public System.IO.FileStream OpenWrite()
3、追加内容:
//创建一个 System.IO.StreamWriter,它向 System.IO.FileInfo 的此实例表示的文件追加文本。
public System.IO.StreamWriter AppendText()
4、打开文件:
//在指定的模式中打开文件。
public System.IO.FileStream Open(System.IO.FileMode mode)
//用读、写或读/写访问权限在指定模式下打开文件。
public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access)
//用读、写或读/写访问权限和指定的共享选项在指定的模式中打开文件。
public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share)
5、复制、移动、替换:
//将现有文件复制到新文件,不允许覆盖现有文件。
public System.IO.FileInfo CopyTo(string destFileName)
//将现有文件复制到新文件,允许覆盖现有文件。
public System.IO.FileInfo CopyTo(string destFileName, bool overwrite)
//将指定文件移到新位置,并提供指定新文件名的选项。
public void MoveTo(string destFileName)
//使用当前 System.IO.FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。
public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName)
//使用当前 System.IO.FileInfo 对象所描述的文件替换指定文件的内容,这一过程将删除原始文件,并创建被替换文件的备份。还指定是否忽略合并错误。
public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors)
6、加密解密、删除:
//将某个文件加密,使得只有加密该文件的帐户才能将其解密。
public void Encrypt()
//解密由当前帐户使用 System.IO.FileInfo.Encrypt() 方法加密的文件。
public void Decrypt()
//永久删除文件。
public override void Delete()
7、获得文件属性:
//获取父目录的实例。
public System.IO.DirectoryInfo Directory { get; }
//获取表示目录的完整路径的字符串。
public string DirectoryName { get; }
//获取指示文件是否存在的值。
public override bool Exists { get; }
//获取或设置确定当前文件是否为只读的值。
public bool IsReadOnly { set; get; }
//获取当前文件的大小(字节)。
public long Length { get; }
//获取文件名。
public override string Name { get; }
在FileInfo中获取文件的相关属性不再是方法了,都是通过属性获得的,并且除是否只读属性为可读可写的,其他属性都是只读的。
总结:
大家注意到,我们在FileInfo中提供的方法不再是静态的,并且返回值都是FileStream类型的,是一个文件流,因此我们在使用FileInfo这个类时还需要结合FileStream类一起使用。而在介绍File类时,所有的操作都是通过静态方法实现的,并且返回值都是具体的值类型。
这也算是对File类与FileInfo类的粗略的对比。


猜你喜欢
- java的String对象底层是有字符数组存储的,理论上char[] 最大长度是int的最大值,实际思路:首先,String字面
- 一、依赖注入方式思考:向一个类中传递数据的方式有几种?普通方法(set方法)构造方法思考:依赖注入描述了在容器中建立bean与bean之间依
- 本文实例为大家分享了Android实现比赛时间闪动效果的具体代码,供大家参考,具体内容如下效果代码上代码public class Twink
- 大多数开发人员现在还在使用if else的过程结构,曾看过jdon的banq大哥写的一篇文章,利用command,aop模式替代if els
- springboot多模块化整合mybatis,mapper自动注入失败问题启动类添加@MapperScan或@ComponentScan,
- C/C++ 左移<<, 右移>>作用1. 左移 <<取两个数字,左移第一个操作数的位,第二个操作数决定要
- 一、ReentrantLock可重入锁可重入锁ReentrantLock 是一个互斥锁,即同一时间只有一个线程能够获取锁定资源,执
- 简介石头剪刀布游戏,进入游戏后,玩家需要输入玩家姓名。系统界面之后弹出欢迎界面,玩家可以选择出拳或者退出游戏。玩家选择出拳后同电脑出拳比较,
- 强调一下阅读系统源码,起码要对进程间通信要了解,对binder机制非常非常清楚,binder就是指南针,要不然你会晕头转向;强行阅读,就容易
- 网上各种解决方案,我试了好久,整合了几篇文章才凑出来,在这里分享一下,实在不想网友们在这里面绕圈子,毕竟,写代码的时间是愉快的,解决bug也
- 1.上原图 前几天在 Hencoder 征稿看到的Filpboard 里的的动画效果:Filipboard.gif先bb一句:在看本文的同时
- 记录窗口上次关闭的位置和大小namespace PDSafe.Base{ public class Se
- 本文实例讲述了C#使用foreach语句遍历队列(Queue)的方法。分享给大家供大家参考。具体如下:using System;using
- springcloud-gateway集成knife4j环境信息环境信息spring-boot:2.6.3spring-cloud-alib
- ProxyFactory是创建代理类的工厂接口,其中的setProperties方法用来对工厂进行属性设置,但是mybatis内置的两个实现
- Android存储方式有很多种,在这里所用的存储方式是SharedPreferrences,其采用了Map数据结构来存储数据,以键值的方式存
- 本文实例讲述了Java使用Preference类保存上一次记录的方法。分享给大家供大家参考。具体分析如下:在使用java中JFileChoo
- 初学线程时,总是将 run 方法和 start 方法搞混,虽然二者是完全不同的两个方法,但刚开始使用时很难分清,原因就是因为初次使用时效果貌
- android给我们提供了一个spinner控件,这个控件主要就是一个列表,那么我们就来说说这个控件吧,这个控件在以前的也看见过,但今天还是
- 1.OkHttp发起网络请求可以通过OkHttpClient发起一个网络请求//创建一个Client,相当于打开一个浏览器 OkHttpCl