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

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

admin4年前 (2020-05-10)代码相关4350

Directory类:静态类,主要处理文件目录。

方法:

CreateDirectory(String)在指定路径中创建所有目录和子目录,除非它们已经存在。返回值是一个DirectoryInfo对象
Delete(String)从指定路径删除空目录。无返回值。
Exists(String)确定给定路径是否引用磁盘上的现有目录。返回值为bool类型。
GetDirectories(String)返回指定目录中的子目录的名称(包括其路径)。返回值是string[]。
GetCurrentDirectory()获取应用程序的当前工作目录。返回值是string。
GetFiles(String)返回指定目录中文件的名称(包括其路径)。返回值是string[]。
GetFileSystemEntries(String)返回指定路径中的所有文件和子目录的名称。返回值是string[]。
EnumerateFiles(String)返回指定路径中的完整文件名的可枚举集合。与GetFiles类似,但返回的是IEnumerable<string>集合。
EnumerateDirectories(String)返回指定路径中的目录完整名称的可枚举集合。与GetDirectories类似,但返回的是IEnumerable<string>集合。
EnumerateFileSystemEntries(String)返回指定路径中的文件名和目录名的可枚举集合。与GetFileSystemEntries类似,但返回的是IEnumerable<string>集合。
Move(String, String)将文件或目录及其内容移到新位置。

CreateDirectory,在指定路径创建一个目录。如果该目录已存在,则此方法不会创建新目录,但会返回现有目录的 DirectoryInfo 对象。

DirectoryInfo directoryInfo = Directory.CreateDirectory(@"D:TestFold");

Delete,含有两个重载方法,

Delete(String),删除空目录,目录必须存在且为空(不包含任何文件及文件夹),否则都会报错。

Directory.Delete(@"D:TestFold");

Delete(String, Boolean),bool值表示是否删除该目录中的所有子目录和文件。

Directory.Delete(@"D:TestFold",true);

Exists,确定指定路径的目录是否存在。

bool isExist = Directory.Exists(@"D:TestFold");
Console.WriteLine(isExist);

GetDirectories,有三个重载方法,返回指定目录的子目录。

GetDirectories(String)

 string[] fold = Directory.GetDirectories(@"D:");
 foreach (var item in fold)
 {
     Console.WriteLine(item);
 }

GetDirectories(String, String):包含匹配模式。第二个参数可以包含有效文本和通配符的组合,但不支持正则表达式

string[] fold = Directory.GetDirectories(@"D:","PRO*");
foreach (var item in fold)
{
    Console.WriteLine(item);
}

GetDirectories(String, String, SearchOption):第三个参数是枚举类型,指定是否搜索所有子目录。

string[] fold = Directory.GetDirectories(@"D:GDAL","*",SearchOption.AllDirectories);
foreach (var item in fold)
{
    Console.WriteLine(item);
}

GetCurrentDirectory:获取当前工作目录。

string currentDir = Directory.GetCurrentDirectory();
Console.WriteLine(currentDir);

GetFiles:返回指定目录文件名的数组,有三个重载方法,与GetDirectories相似。

GetFiles(String):返回指定目录下所有文件的文件名数组。

string[] files = Directory.GetFiles(@"D:");
foreach (var item in files)
{
     Console.WriteLine(item);
}

GetFiles(String, String)返回指定目录中与指定的搜索模式匹配的文件的名称(包含其路径)。第二个参数可以包含有效文本路径和通配符(* 和 ?)的组合,但不支持正则表达式

string[] files = Directory.GetFiles(@"D:","*.mkv");
foreach (var item in files)
{
    Console.WriteLine(item);
}

GetFiles(String, String, SearchOption):第三个参数是枚举类型,表示是否搜索所有子目录。

string[] files = Directory.GetFiles(@"K:电影","*.mkv",SearchOption.AllDirectories);
foreach (var item in files)
{
     Console.WriteLine(item);
}

GetFileSystemEntries:返回指定路径中的所有文件和子目录的名称。三个重载方法与上面类似,不赘述。

EnumerateFiles,返回文件名的IEnumerable<string>集合。三个重载方法与上面类似。

IEnumerable<string> enumDir = Directory.EnumerateFiles(@"D:");
            foreach (var item in enumDir)
            {
                Console.WriteLine(item);
            }

EnumerateDirectories:返回目录的IEnumerable<string>集合。三个重载方法与上面类似。

EnumerateFileSystemEntries:返回目录及文件名的IEnumerable<string>集合。三个重载方法与上面类似。

Move:将文件或目录移动到新位置。两个参数必须一致,即均为文件名或均为文件目录。若新目录已存在会报异常。



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

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

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

分享给朋友:

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

递归计算1到x的和

递归真是个神奇的东西,当时学C的时候就没搞明白,学C#又遇到例子了。        public int SumXTo1(int x)     &n...

C# 属性,get,set使用

属性反映了状态,是对字段的自然扩展。下面的代码,有一个学生类,类中有年龄属性,通过get,set对年龄进行值的获取与设置,同时对年龄进行约束,使值控制在0-120之间,否则抛出异常信息。namespace _20200324_2 {     cl...

C# 使用FileStream进行文件复制操作

使用文件流进行操作,如下,其中注释部分是和非注释部分一样的,但是使用using语句是执行完后自动释放内存,而注释部分是手动释放。CopyFile方法中,缓冲区大小设为1024*1024字节,也就是1MB,Read方法和Write方法中,第一个参数都是缓冲区数组,第二个参数都是偏移量,这个量是在缓冲区...

C# 多线程(1)

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

C#(或者Java)反转数组

将原数组反转,如[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]反转后变为[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]因为数组是引用类型,所以直接在方法中处理即可,C#和Java写法一样,如下:      &nb...

PIE 分块读写数据

PIE 分块读写数据

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