C# 文件基本操作(一)

01  判断文件是否存在

fdb45310a0523bf5fcc7a28d5d246cf2.png

判断文件是否存在时,可以使用 File 类的 Exists 方法或者 FileInfo 类的 Exists 属性来实现,下面分别对它们进行介绍。

1.  File 类的 Exists 方法

该方法用于确定指定的文件是否存在,语法如下:

public static bool Exists(string path)

4994ee66f15a733478de98a8e5ae2041.png  path:要检查的文件。

a427175f365e4e301c0f931c6ed96d39.png  返回值:如果调用方具有要求的权限并且 path 包含现有文件的名称,则为 true;否则为 false。如果 path 为空引用或零长度字符串,则该方法返回 false。如果调用方不具有读取指定文件所需的足够权限,则不引发异常并且该方法返回 false ,这与 path 是否存在无关。

说明

在用 Exists 方法时,拖路径为空,则会触发异常。

例1

下面代码使用 File 类的 Exists 方法判断 C 盘根目录下是否存在 Test.txt 文件。

File.Exists("C:\\Test.txt");

2.  FileInfo 类的 Exists 属性

该属性获取指示文件是否存在的值,语法如下:

public override bool Exists { get; }

属性值:如果该文件存在,则为 true; 如果该文件不存在或该文件是目录,则为 false。

例2

下面的代码首先实例化一个 FileInfo 对象,然后使用该对象调用 FileInfo 类中的 Exists 属性判断 C 盘根目录下是否存在 Test.txt 文件。

FileInfo finfo = new FileInfo("C:\\Test.txt");

if(finfo.Exists

{ }

02  创建文件

创建文件可以使用 File 类的 Create 方法或者 FileInfo 类的 Create 方法来实现,下面分别对它们进行介绍。

1.  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)

参数说明表如表1  所示。

75cd9b27b8955a21edffce515d15d85b.png

        表1    File 类的 Create 方法参数说明

说明

在用 Create 方法创建目录时,如果路径为空,或是文件夹为只读,则会触发异常。

例3

下面的代码调用 File 类的 Create 方法在 C 盘根目录下创建一个 Test.text 文本文件。

File.Create("C:\\Test.txt");

2.  FileInfo 类的 Create 方法

语法如下:

public FileStream Createz()

返回值:新文件,默认情况下,该方法将向所有用户授予对新文件的完全读写访问权限。

例4

下面的代码首先实例化一个 FileInfo 对象,然后使用该对象调用 FileInfo 类的 Create 方法在 C 盘根目录下创建一个 Test.txt 文本文件。

FileInfo finfo = new FileInfo("C:\\Test.txt");

finfo.Create();

03  复制或移除文件

复制或移除文件时,可以使用 File 类的 Copy 方法、Move方法或者 FileInfo 类的 CopyTo 方法、MoveTo 方法来实现,下面分别对它们进行介绍。

1.  File 类的 Copy 方法

该方法为可重载方法,它有以下两种重载形式:

public static void Copy(string sourceFileName,string destFileName)

public static void Copy(string sourceFileName,string destFileName,bool overwrite)

bd3ab40341c365f1e720d806e061f64e.png  sourceFileName:要复制的文件。

35b1f8d464d48f89f52baa8795da9dc6.png  destFileName:目标文件的名称,不能是目录。如果是第一种形式,则该参数不能是现有文件。

137b5c491b88c19101d32175a00e18ee.png  overwrite:如果可以改写目标文件,则为 true;否则为 false。

例5

下面的代码调用 File 类的 Copy 方法将 C 盘根目录下的 Test.txt 文本文件复制到 D 盘根目录下。

File.Copy("C:\\Test.txt","D:\\Test.txt");

2.  File 类的 Move 方法

该方法将指定文件移到新位置,并提供指定新文件名的选择,语法如下:

public static void Move(string sourceFileName,string destFileName)

82d0d3141b4903ba5f271e0432640824.png  sourceFileName:要移动的文件的名称。

424f401b6ce6d6b7d00e903d4d0b282a.png  destFileName:文件的新路径。

说明

在对文件进行移动时,如果目标文件已存在,则发生异常。

例6

下面的代码调用 File 类的 Move 方法将 C 盘根目录下的 Test.txt 文本文件移动到 D 盘根目录下。

File.Move("C:\\Test.txt","D:\\Test.txt");

3.  FileInfo 类的 CopyTo 方法

该方法为可重载方法,它有以下两种重载形式:

public FileInfo CopyTo(string destFileName)

public FileInfo CopyTo(string destFileName,bool overwrite)

2e499cbb05fa44d373847bf0483ab8f0.png  destFlieName:要复制到新文件的名称。

9420b50267e6a9d5b3d6d6a6a68b1814.png  overwrite:若为 true,则允许改写现有文件;否则为 false。

2c516677951b84a073de82113fe9690d.png  返回值:第一种重载形式的返回值为带有完全限定路径的新文件。第二种重载形式的返回值为新文件,或者如果 overwrite 为 true,则为现有文件的改写。如果文件存在,且 overwrite 为 false,则会发生 IOException。

例7

下面的代码首先实例化一个 FileInfo 对象,然后使用该对象调用 FlieInfo 类的 CopyTo 方法将 C 盘根目录下的 Test.txt 文本文件复制到 D 盘根目录下。如果 D 盘根目录下已经存在 Test.txt 文本文件,则将其替换。

FlieInfo finfo = new FileInfo("C:\\Test.txt");

finfo.CopyTo("D:\\Test.txt",true);

4.  FileInfo 类的 MoveTo 方法

该方法将指定文件移到新位置,并提供指定新文件名的选项,语法如下:

public void MoveTo(string destFileName)

destFileName:要将文件移动到路径,可以指定另一个文件名。

例8

下面的代码首先实例化一个 FileInfo 对象,然后使用该对象调用 FileInfo 类的 MoveTo 方法将 C 盘根目录下的 Test.txt 文本文件移动到 D 盘根目录下。

FileInfo finfo = new FileInfo("C:\\Test.txt");

finfo.MoveTo("D:\\Test.txt");

往期推荐

6ff6b1739489787be2cef691b6aa0467.png

Love life,love yourself

关注小编不迷路呦~

-----------------------------------

公众号【Csharp编程大全】,需要进技术群交流的,请添加小编mm1552923!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值