文件和I/O流的差异:

文件是一些具有永久存储及特定顺序的字节组成的一个有序的、具有名称的集合。

因此对于文件,我们经常想到文件夹路径,磁盘存储,文件和文件夹名等方面。

I/O流提供一种后备存储写入字节和从后备存储读取字节的方式。

后备存储能够为多种存储媒介之中的一个。

System.IO命名空间中的经常使用类:

BinaryReader     用特定的编码将基元数据类型读作二进制值

BinaryWriter     以二进制形式将基元类型写入流,并支持用特定的编码写入字符串

Directory        公开用于创建、移动和枚举通过文件夹和子文件夹的静态方法,无法被继                  承

DirectoryInfo    公开用于创建、移动和枚举文件夹和子文件夹的实例方法,无法被继承

File             提供创建、复制、删除、移动和打开文件的静态方法,协助创建                      FileStream对象

FileInfo         提供创建、复制、删除、移动和打开文件的实例方法,而且帮助创建                  FileStream对象

FileStream       公开以文件为主的Stream,既支持同步读写操作,也支持异步读写操                  作

FileSystemInfo   为FileInfo和DirectoryInfo对象提供基类

StreamReader     实现一个TextReader,使其以一种特定的编码从字节流中读取字符

StreamWriter     实现一个TextWriter,使其以一种特定的编码向流中写入字符

1.File类:

Copy                  将现有文件拷贝到新文件

Create                在指定路径中创建文件

Delete                删除指定的文件,假设指定的文件不存在,则不引起异常

Exists                确定指定的文件是否存在

Move                  将指定文件移到新位置,并提供指定新文件名称的选项

Open                  打开指定路径上的FileStream

GetCreationTime       返回指定文件或文件夹的创建日期和时间

OpenRead              打开现有文件进行读取

OpenText              打开现有UTF-8编码文本文件以进行读取

OpenWrite             打开现有文件进行写入

2.FileInfo类:

Directory       获取父文件夹的实例

Exists          获取指示文件是否存在的值

FullName        获取文件夹或文件的完整文件夹

Length          获取当前文件的大小

Name            获取文件名称

3.File类和FileInfo类的基本操作方法

注意:

因为File类中的全部方法都是静态的,所以假设仅仅想运行一个操作,那么使用File类中方法的效率比使用对应的FileInfo类中的方法可能更高

File类中的方法都是静态方法,在使用时须要对全部方法都运行安全检查。因此假设打算多次重用某个对象,可考虑改用FileInfo类中的对应方法,由于不总是须要安全检查。

(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");


C#文件操作基础之File类和FileInfo类的更多相关文章

  1. C# 运用DirectoryInfo类和FileInfo类

    DirectoryInfo类和FileInfo类的基类都是FileSystemInfo类,这个类是一个抽象类,也就是说你不可以实例化该类,只能通过继承产生其子类并实例化其子类.然而你却可以运用由该类定 ...

  2. 文件及文件夹操作- File类、Directory 类、FileInfo 类、DirectoryInfo 类

    文件及文件夹操作: C/S:WinForm可以操作客户端文件 Client ServerB/S:Brower Server 命名空间:using system .IO; 1. File类: 创建:Fi ...

  3. 14、Java文件操作stream、File、IO

    1.文件操作涉及到的基本概念 File File类 是文件操作的主要对象中文意义就是 文件 顾名思意 万物皆文件,在计算上看到的所有东西都是文件保存,不管是你的图片.视频.数据库数据等等都是按照基本的 ...

  4. 【java】文件操作java.io.File

    package 文件操作; import java.io.File; import java.io.IOException; public class TestFile { public static ...

  5. python之文件操作(基础)

    文件操作作为python基础中的重点,必须要掌握. 1.默认我们在本地电脑E盘新建wp.txt文件进行测试,文件内容如下设置. 2.进行代码编写: f=open("E://wp.txt&qu ...

  6. File类与FileInfo类

    File是一个静态类,常用于文件操作,读取,修改文件等等.File类的大部分方法最终都是转换为流(Stream)的操作,只不过是.net提取帮你封装好了这些常用的流.并且会自动清理占用的资源. 例如: ...

  7. .net框架 - File类与FileInfo类异同

    System.IO命名空间中提供的文件操作类有File和FileInfo,这两个类的功能基本相同,只是File是静态类,其中所有方法都是静态的,可以通过类名直接调用,不需要实例化.而FileInfo是 ...

  8. File类、FileInfo类、Directory类、DirectoryInfo类

    File类.Directory类,都是静态类,可以直接使用类名 FileInfo类.DirectoryInfo类,都是动态类,需要new对象,通过对象来操作 [文件的创建.复制.移动.删除]using ...

  9. file类和fileinfo类的简单对比

    File类:提供用于操作文件的静态方法. FileInfo类:提供操作文件的属性和实例方法. Directory类:提供用于操作目录的静态方法. DirectoryInfo类:提供用于操作目录的实例方 ...

随机推荐

  1. css3 animation 参数详解

    animation: name 2s ease 0s 1 both有人知道这后面的参数都代表什么意思吗 name 就是你创建动画的名称 2S表示的时长 ease表示运动效果 0S表示延迟时间 1表示的 ...

  2. Effective C++_笔记_条款11_在operator=中处理“自我赋值”

    (整理自Effctive C++,转载请注明.整理者:华科小涛@http://www.cnblogs.com/hust-ghtao/) 为什么会出现自我赋值呢?不明显的自我赋值,是“别名”带来的结果: ...

  3. Jetty支持Windows认证

    WAFFLE是什么? Jetty增加WAFFLE支持 DEMO 小结 WAFFLE是什么? WAFFLE是一个Windows认证框架,支持Negotiate, NTLM和Kerberos认证.WAFF ...

  4. zabbix 主机名必须要能ping通

    api01:/home/tomcat> cat /etc/hosts 127.0.0.1 localhost ::1 localhost localhost.localdomain localh ...

  5. hdu 4704 同余定理+普通快速幂

    此题往后推几步就可找到规律,从1开始,答案分别是1,2,4,8,16.... 这样就可以知道,题目的目的是求2^n%Mod的结果.....此时想,应该会想到快速幂...然后接着会发现,由于n的值过大, ...

  6. CloudStack搭建KVM环境

    软件环境:agent:CentOS 6.3,minimal安装,CPU启用VT management server:CentOS 6.3,minimal安装 存储:CentOS 6.3 搭建在mana ...

  7. MapReduce调度与执行原理之作业初始化

    前言 :本文旨在理清在Hadoop中一个MapReduce作业(Job)在提交到框架后的整个生命周期过程,权作总结和日后参考,如有问题,请不吝赐教.本文不涉及Hadoop的架构设计,如有兴趣请参考相关 ...

  8. 手动配置S2SH三大框架报错(一)

    十二月 08, 2013 9:24:51 下午 org.apache.catalina.core.AprLifecycleListener init 严重: An incompatible versi ...

  9. 消息函数一般是私有的,因为不需要程序员显示的调用,但子类如果需要改写这个方法,则改成保护方法Protected

    许多的面向对象程序设计语言都支持对消息的处理.消息处理是一种动态响应客户类发出的请求,它与过程调用不同.过程调用中,客户类必须知道服务类提供了哪些过程,以及每个过程的调用约定,并且在调用时需要明确指出 ...

  10. 【ASP.NET Web API教程】4.2 路由与动作选择

    原文:[ASP.NET Web API教程]4.2 路由与动作选择 注:本文是[ASP.NET Web API系列教程]的一部分,如果您是第一次看本系列教程,请先看前面的内容. 4.2 Routing ...