Windows文件夹与文件操作

路径合成

连接两个路径

Path.Combine("C://test", "path1");// 连接结果就是"C://test//path1"

连接文件夹路径与文件名

string.Concat("C://test", "//filename");// 文件名前一定要接上"//"

文件夹/路径

路径信息中的Root属性就是这个路径的根盘符

根盘符路径的父路径属性为null

Directory创建路径是根据“/”或“\\”分片之后,匹配寻找路径下是否有该文件夹,所以创建路径无须父目录存在

创建文件夹路径

if (!Directory.Exists(Path))
{
    Directory.CreateDirectory(Path);
}

文件

创建文件前,存储该文件的路径必须存在

保存文件,若同名文件存在则被新文件覆盖

文件/文件夹遍历

我们常遇到这样的问题,要对某一路径下的文件进行遍历找出需要后缀名的文件。这里要使用 DirectoryInfo 这个类,这个类封装了很多对一个路径及其子父路径的操作。下面代码是遍历文件,其他操作同理。

public void GetAllImageFiles(string dir, List<string> allImageFiles)
{
    DirectoryInfo di = new DirectoryInfo(dir);// 实例化一个DirectoryInfo对象来对路径进行操作,这是纯面向对象的思维
    
    var filesPath = di.GetFiles("*.bmp").Select(p => p.FullName);// 返回的是一个泛型为string的文件路径集合,其他类型的文件同理
    allImageFiles.AddRange(filesPath);// 存储到把引用传进来的列表里
    
    var subDirs = di.GetDirectories().ToList();// 获取本文件夹目录下的所有子文件夹路径集合
    subDirs.ForEach(p => GetAllImageFiles(p.FullName, allImageFiles));// 遍历迭代
}

你可能感兴趣的:(遍历,文件,文件夹)