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

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

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

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#中,用数组中的Max()方法和直接通过比较获取最大值的时间谁快,于是试了试:       static void Main(string[] args)   &nb...

PIE二次开发 加载栅格数据

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

C语言malloc()函数

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

C语言字符串换行连接

C语言字符串换行连接

有时候遇到一个字符串太长一行放下不好看的情况,可以使用换行连接:一是使用 符号,如下所示:char* testString = "AAA BBB";运行如下:注意换行后的内容一定要顶到格子的最前面,否则会把前面的空格也算上。char* ...

C语言结构体

C语言的结构(struct)是一种复杂的数据类型,可以包含多种数据类型,基本类型都能包含,但是不能包含函数,这是和C++中的结构不同的地方,但是可以包含函数指针,但是这也并不矛盾,因为本身指针指向的是一个地址,也是一个变量。下面是结构的定义的示例:struct Name {  ...

C语言 rename

在<stdio.h>头文件下以下内容来自:http://www.cplusplus.com/reference/cstdio/rename/?kw=renamerenameint rename ( const char * ol...