当前位置:首页 > 代码相关

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

admin6年前 (2020-05-09)代码相关11257

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发布,如需转载请注明出处。

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

分享给朋友:

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

C#事件_Sample_2

事件的拥有者与事件的响应者是分开的情况…

C# 正则表达式(2)

正则表达式(2)…

C# 抽象类与接口的比较

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

C# Stack堆栈

Stack代表了一个先入后出的对象集合。有以下常用方法:…

PIE 分块读写数据

PIE 分块读写数据

手头的影像数据量比较大,尺寸是 20009*10165 的,直接创建数组会导致栈溢出,因此决定分块,思路也比较简单,如图:只是把x分成多份,y不变,这样代码写起来也简单,只要做好最后一个块的宽度的判断就好了。我这里是把一个float型的单波段影像做了一个阈值分割,输出到一个byte影像中,分块是以…

C语言malloc()函数

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