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

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

admin4年前 (2020-05-09)代码相关9058

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# 委托

C# 委托

Action和Func是.NET类库的内置委托,以简便使用。Func有17个重载还可以使用delegate关键字创建委托下面的代码展示了这三种使用委托的方法namespace _20200327 {     public delegat...

C# 正则表达式(2)

// pattan = @"[^ahou]"; 表示匹配除ahou之外的字符,^在表示反义 string res4 = Regex.Replace(s, @"[^ahou]",&...

C# 抽象类与接口的比较

相同:都不能被实例化都包含未实现的方法派生类必须实现未实现的方法不同:抽象类可以包含抽象成员,也可以包含非抽象成员,即抽象类可以是完全实现的,也可以是部分实现的,或者是完全不实现的。接口更像是只包含抽象成员的抽象类,或者说接口内的成员都是未被实现的。一个类只能继承一个抽象类(当然其它类也一样),但是...

PIE二次开发 加载栅格数据

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

C# 返回值是接口的方法

今天写PIE二次开发加载栅格数据的时候发现类中方法的返回值是接口,之前没怎么写过,在此记录一下。在例子中设计一个接口 ICalculate ,接口中有两个方法, Add() 和 Div() 分别为加法和减法的功能,均有两个参数,参数和返回值的类型都是int类型。设计一个名为Calculat...

C语言malloc()函数

C语言中malloc()函数,用于分配所需的内存,并返回一个指向该内存的指针。注意这是C的标准库函数,不是C的关键字,在<stdlib.h>头文件下。函数声明: void *malloc(size_t size)其中,size是要分配的内存的大小,单位是字节。返回一个指针 ,指向已分配大...