Directory 与 DirectoryInfo 的区别

Directory与DirectoryInfo是C# .NET Framework下用来管理文件夹的类。下面将详细介绍Directory与DirectoryInfo的区别、使用方法以及案例说明。

一、Directory与DirectoryInfo的区别

1.类型不同

Directory是静态类,属于System.IO命名空间,它的所有成员都是静态的,使用它的方法时直接通过类名调用即可。

DirectoryInfo是一个实例对象类型,同样属于System.IO命名空间,需要先创建对象,再通过对象调用方法。

2.用途不同

Directory提供了一些静态方法用于创建、删除、移动文件夹,获取文件列表等文件夹操作。

DirectoryInfo则提供了更多方法和属性,可以操作文件夹的创建、删除、移动,获取子目录、文件,改变文件夹属性等操作。

3.参数不同

Directory的参数通常为字符串类型,表示文件夹路径。由于Directory是静态类型,因此必须使用类名调用方法。

DirectoryInfo的参数为字符串类型,不仅表示文件夹路径,还可以指定文件夹名,创建文件夹等。由于DirectoryInfo是实例类型,需要通过对象调用方法。

二、使用方法

1.Directory的使用方法

1)创建一个文件夹

```

Directory.CreateDirectory(@"C:\demo\newFolder");

```

2)删除一个文件夹

```

Directory.Delete(@"C:\demo\newFolder");

```

3)获取文件夹中的所有文件

```

string[] files = Directory.GetFiles(@"C:\demo");

foreach (string file in files)

{

Console.WriteLine(file);

}

```

2.DirectoryInfo的使用方法

1)创建一个文件夹

```

DirectoryInfo di = new DirectoryInfo(@"C:\demo\newFolder");

di.Create();

```

2)删除一个文件夹

```

DirectoryInfo di = new DirectoryInfo(@"C:\demo\newFolder");

if (di.Exists)

{

di.Delete();

}

```

3)获取文件夹中的所有文件

```

DirectoryInfo di = new DirectoryInfo(@"C:\demo");

foreach (FileInfo fi in di.GetFiles())

{

Console.WriteLine(fi.FullName);

}

```

三、案例说明

1.遍历文件夹

使用DirectoryInfo类的CreateSubdirectory()方法创建多级文件夹,并使用GetDirectories()方法遍历文件夹。

```

DirectoryInfo root = new DirectoryInfo(@"C:\demo");

DirectoryInfo sub = root.CreateSubdirectory("sub");

sub.CreateSubdirectory("subsub");

foreach (DirectoryInfo dir in root.GetDirectories("*", SearchOption.AllDirectories))

{

Console.WriteLine(dir.FullName);

}

```

2.复制文件夹

使用Directory类的Copy()方法复制文件夹。

```

string sourcePath = @"C:\demo\source";

string targetPath = @"C:\demo\target";

Directory.CreateDirectory(targetPath);

Directory.Copy(sourcePath, targetPath);

Console.WriteLine("File Copy Done!!");

```

以上就是Directory与DirectoryInfo的区别、使用方法以及案例说明。需要注意的是,当需要详细操作文件夹的属性和信息时,可以使用DirectoryInfo类,而当需要更简单的文件夹操作时,可以使用Directory类。

壹涵网络我们是一家专注于网站建设、企业营销、网站关键词排名、AI内容生成、新媒体营销和短视频营销等业务的公司。我们拥有一支优秀的团队,专门致力于为客户提供优质的服务。

我们致力于为客户提供一站式的互联网营销服务,帮助客户在激烈的市场竞争中获得更大的优势和发展机会!

点赞(57) 打赏

评论列表 共有 0 条评论

暂无评论
立即
投稿
发表
评论
返回
顶部