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

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

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

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# 正则表达式(1)

C# 正则表达式(1)

用于匹配输入文本的模式string s = "this is a test!"; string res = Regex.Replace(s, "^",&nbs...

C# 正则表达式(2)

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

C# Stack堆栈

Stack代表了一个先入后出的对象集合。有以下常用方法:表 3Clear()从 Stack 中移除所有对象。Contains(Object)确定某元素是否在 Stack 中。CopyTo(Array, Int32)从指定的数组索引处开始,将 Stac...

PIE二次开发 加载栅格数据

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

PIE 分块读写数据

PIE 分块读写数据

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

C语言malloc()函数

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