C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小

1. 判断文件夹或文件是否存在

在C#中,判断文件夹或文件是否存在可以使用Directory.Exists(path)方法来实现,该方法接受一个字符串参数path,表示文件夹或文件的路径。

下面是一个例子,判断路径为C:\MyFolder的文件夹是否存在:

string path = "C:\\MyFolder";

if (Directory.Exists(path))

{

Console.WriteLine("文件夹已经存在");

}

else

{

Console.WriteLine("文件夹不存在");

}

如果文件夹存在,则输出文件夹已经存在,否则输出文件夹不存在

2. 创建文件夹

如果判断文件夹不存在,我们还可以使用Directory.CreateDirectory(path)方法创建文件夹。

下面是一个例子,创建路径为C:\MyFolder的文件夹:

string path = "C:\\MyFolder";

if (!Directory.Exists(path))

{

Directory.CreateDirectory(path);

Console.WriteLine("文件夹创建成功");

}

else

{

Console.WriteLine("文件夹已经存在");

}

如果文件夹不存在,则创建文件夹并输出文件夹创建成功,否则输出文件夹已经存在

3. 创建文件

与创建文件夹类似,我们可以使用File.Create(path)方法来创建文件。

下面是一个例子,创建路径为C:\MyFile.txt的文本文件:

string path = "C:\\MyFile.txt";

if (!File.Exists(path))

{

File.Create(path);

Console.WriteLine("文件创建成功");

}

else

{

Console.WriteLine("文件已经存在");

}

如果文件不存在,则创建文件并输出文件创建成功,否则输出文件已经存在

4. 递归计算文件夹大小

4.1 计算文件大小

要计算文件夹的大小,我们需要先计算文件的大小。可以使用FileInfo.Length属性获取文件的大小,该属性返回一个long类型的值,表示文件的字节数。

下面是一个例子,计算路径为C:\MyFile.txt的文件大小:

string filePath = "C:\\MyFile.txt";

FileInfo fileInfo = new FileInfo(filePath);

long fileSize = fileInfo.Length;

Console.WriteLine("文件大小:" + fileSize + "字节");

计算完成后,将文件大小输出。

4.2 递归计算文件夹大小

对于文件夹,我们需要递归计算其中所有文件的大小,并将其累加。

下面是一个递归计算文件夹大小的例子:

string folderPath = "C:\\MyFolder";

long totalSize = CalculateFolderSize(folderPath);

Console.WriteLine("文件夹大小:" + totalSize + "字节");

private static long CalculateFolderSize(string folderPath)

{

long totalSize = 0;

DirectoryInfo directoryInfo = new DirectoryInfo(folderPath);

FileInfo[] files = directoryInfo.GetFiles();

foreach (FileInfo file in files)

{

totalSize += file.Length;

}

DirectoryInfo[] subDirectories = directoryInfo.GetDirectories();

foreach (DirectoryInfo subDirectory in subDirectories)

{

totalSize += CalculateFolderSize(subDirectory.FullName);

}

return totalSize;

}

首先定义了一个CalculateFolderSize方法用于计算文件夹大小,该方法接受一个字符串参数folderPath,表示文件夹的路径,返回一个long类型的值,表示文件夹的大小。

CalculateFolderSize方法内部,首先创建了一个DirectoryInfo对象来表示文件夹,然后使用GetFiles()方法获取该文件夹下的所有文件,使用GetDirectories()方法获取该文件夹下的所有子文件夹。

接下来,遍历所有文件,将每个文件的大小累加到totalSize变量中。

然后,遍历所有子文件夹,对每个子文件夹调用CalculateFolderSize方法递归计算其大小,并将结果累加到totalSize变量中。

最后,返回totalSize作为文件夹的大小。

5. 总结

本文介绍了如何使用C#判断文件夹或文件是否存在,并创建文件夹或文件。另外,还介绍了如何递归计算文件夹的大小。通过学习这些知识,你可以更好地操作文件夹和文件,并实现各种需求。

后端开发标签