当前位置:首页 > 代码相关 > 正文内容

C# 与文件相关的几个类(1)

admin5年前 (2020-05-09)代码相关9626

C# 与文件访问相关的常用的类:

File类、Directory类、Path类、FileInfo类、DirectoryInfo类、FileSystemInfo类、FileSystemWatcher类

以上几个类均在System.IO命名空间下。

挨个说吧:

File类:静态类,只有静态方法,用于移动复制删除文件等操作。

方法:

Copy(String, String) 将现有文件复制到新文件。 不允许覆盖同名的文件。无返回值。
Copy(String, String, Boolean)将现有文件复制到新文件。 允许覆盖同名的文件。无返回值。
Create(String)在指定路径中创建或覆盖文件。返回类型为FileStream类型。
Create(String, Int32)在指定路径中创建或覆盖文件,指定缓冲区大小。返回类型为FileStream类型。
CreateText(String)创建或打开用于写入 UTF-8 编码文本的文件。 如果该文件已存在,将覆盖其内容。返回值为StreamWriter类型。
Delete(String)删除指定的文件。无返回值。
Exists(String)确定指定的文件是否存在。返回值为bool类型。
Move(String, String)将指定文件移到新位置,提供要指定新文件名的选项。无返回值。
Open(String, FileMode)通过不共享的读/写访问权限打开指定路径上的 FileStream返回值为FileStream类型。
ReadAllBytes(String)打开一个二进制文件,将文件的内容读入一个字节数组,然后关闭该文件。返回值为byte[]。
ReadAllLines(String)打开一个文本文件,读取文件的所有行,然后关闭该文件。返回值为string[]。
ReadAllLines(String, Encoding)打开一个文件,使用指定的编码读取文件的所有行,然后关闭该文件。返回值为string[]。
WriteAllLines(String, String[])创建一个新文件,在其中写入指定的字节数组,然后关闭该文件。

Copy有两个重载,如下:

image.png


第一个是将现有文件复制到新文件。 不允许覆盖同名的文件。

第二个有一个bool参数,如果可以覆盖目标文件,则为 true;否则为 false。

两个sourceFileName和destFileName都是文件名称,不能是目录名称。

File.Copy(@"D:MyTest.txt", @"E:MyTest.txt");
File.Copy(@"D:MyTest.txt", @"E:MyTest.txt",true);

Create有四个重载,如下:

image.png


说前两个,区别在于是否指定缓冲区大小。所有的Create都是没有文件就创建,有相应文件的话就覆盖

FileStream fs = File.Create(@"D:MyTest.txt");
byte[] info = Encoding.UTF8.GetBytes("This is the text in the file!");
fs.Write(info, 0, info.Length);
fs.Close();

CreateText,创建或打开用于写入 UTF-8 编码文本的文件。 如果该文件已存在,将覆盖其内容。

StreamWriter sw = File.CreateText(@"D:MyTest.txt");
sw.WriteLine("This is the text in the file!");
sw.Close();

Delete,删除指定的文件。

File.Delete(@"D:MyTest.txt");

Exists,检查文件是否存在。

bool isExist = File.Exists(@"D:MyTest.txt");
Console.WriteLine(isExist);

Move,将指定文件移动到新位置。若找不到源文件或者目标位置有同名文件(也就是不会覆盖同名文件)则报IOException异常。

File.Move(@"D:MyTest.txt", @"E:MyTest.txt");

WriteAllLines,创建一个新文件,在其中写入一个或多个字符串,然后关闭该文件。注意有每个字符串写入时会换行。

string[] contents = { "This is the text in the file!" };
File.WriteAllLines(@"D:MyTest.txt", contents);

ReadAllLines,打开一个文本文件,读取文件的所有行,然后关闭该文件。

string[] contents = File.ReadAllLines(@"D:MyTest.txt");

foreach (var item in contents)
{
    Console.WriteLine(item);
}


扫描二维码推送至手机访问。

版权声明:本文由lovedm.club发布,如需转载请注明出处。

本文链接:http://lovedm.club/?id=45

分享给朋友:

“C# 与文件相关的几个类(1)” 的相关文章

C#事件_Sample_3

事件的拥有者同时是事件的响应者using System; using System.Windows.Forms; /// <summary> /// 事件的拥有者同时是事件的响应者 /// </summary> na...

C# 泛型委托

C# 泛型委托

虽然没有必要,但是还是先看看自定义的泛型委托:namespace _20200402 {     class Program     {     &nb...

C# Lambda表达式

简单用法,一句一句来,便于理解 Func<int, int, int> func = new Func<int, int, int>((int a, int b) => { return a * b; });(int a, int b) => { ret...

C# 与文件相关的几个类(3)

Path类,处理文件或路径的类,是一个静态类。方法:PathChangeExtension(String, String)更改路径字符串的扩展名。返回值为string。Combine(String, String)将两个字符串组合成一个路径。GetDirectoryName(String)返回指定路...

C# 多线程(1)

一、首先看几个词的含义:进程:进程(Process)是计算机中的程序关于某数据集合上的一次运行活动,是系统进行资源分配和调度的基本单位,是操作系统结构的基础。线程:线程(Thread)是操作系统能够进行运算调度的最小单位。它被包含在进程之中,是进程中的实际运作单位。一条线程指的是进程中一个单一顺序的...

PIE二次开发 加载栅格数据

1、获得栅格数据集路径2、打开栅格数据集3、创建栅格图层4、将数据添加到图层并刷新要添加两个引用:using PIE.DataSource;using PIE.Carto;// 获得要打开栅格数据的路径 OpenFileDialog file = new&n...