下面是关于“C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小”的详细攻略。
1. 先判断是否存在再创建文件夹或文件
在C#中,我们可以使用System.IO.Directory
和System.IO.File
类来创建文件夹或文件,并且可以通过相应的方法,判断是否存在。
1.1 判断文件夹是否存在并创建文件夹
如果我们需要判断一个文件夹是否存在,并在不存在的情况下创建文件夹,可以使用Directory.Exists
和Directory.CreateDirectory
方法。
string dirPath = @"C:\temp\testDir";
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
上述代码中,我们首先通过Directory.Exists
方法判断目标文件夹是否存在。如果不存在,则使用Directory.CreateDirectory
方法创建文件夹。
1.2 判断文件是否存在并创建文件
如果我们需要判断一个文件是否存在,并在不存在的情况下创建文件,可以使用File.Exists
和File.Create
方法。
string filePath = @"C:\temp\testFile.txt";
if (!File.Exists(filePath))
{
using (File.Create(filePath)) {}
}
上述代码中,我们首先通过File.Exists
方法判断目标文件是否存在。如果不存在,则使用File.Create
方法创建文件。需要注意的是,使用File.Create
方法创建文件后,需要采用using
语句对文件进行释放。
2. 递归计算文件夹大小
在C#中,我们可以使用System.IO.Directory
和System.IO.File
类来操作文件和文件夹。如果想要递归计算文件夹的大小,我们需要遍历该文件夹的所有子文件夹和文件,并对文件大小进行累加计算。
long GetDirectorySize(string dirPath)
{
// 如果文件夹不存在,则返回0
if (!Directory.Exists(dirPath))
{
return 0;
}
// 获取所有子文件夹大小
long size = 0;
string[] subDirectories = Directory.GetDirectories(dirPath);
foreach (string subDir in subDirectories)
{
size += GetDirectorySize(subDir);
}
// 获取所有文件大小
string[] files = Directory.GetFiles(dirPath);
foreach (string file in files)
{
FileInfo fileInfo = new FileInfo(file);
size += fileInfo.Length;
}
return size;
}
上述代码中,我们首先定义了一个名为GetDirectorySize
的方法。该方法的输入参数为文件夹路径,返回值为文件夹的大小。在方法中,我们先判断文件夹是否存在,如果不存在,则直接返回0。然后依次获取所有子文件夹的大小,并累加到size
变量中。最后,获取文件夹中所有文件的大小,并同样累加到size
变量中。最终,返回size
变量的值。
下面是一个调用示例:
long size = GetDirectorySize(@"C:\temp");
Console.WriteLine("C:\\temp 的大小为 {0} 字节", size);
示例
示例1:创建文件夹
string dirPath = @"C:\temp\testDir";
if (!Directory.Exists(dirPath))
{
Directory.CreateDirectory(dirPath);
}
上述代码先判断C:\temp\testDir
文件夹是否存在,如果不存在则创建该文件夹。
示例2:递归计算文件夹大小
long GetDirectorySize(string dirPath)
{
// 如果文件夹不存在,则返回0
if (!Directory.Exists(dirPath))
{
return 0;
}
// 获取所有子文件夹大小
long size = 0;
string[] subDirectories = Directory.GetDirectories(dirPath);
foreach (string subDir in subDirectories)
{
size += GetDirectorySize(subDir);
}
// 获取所有文件大小
string[] files = Directory.GetFiles(dirPath);
foreach (string file in files)
{
FileInfo fileInfo = new FileInfo(file);
size += fileInfo.Length;
}
return size;
}
long size = GetDirectorySize(@"C:\temp");
Console.WriteLine("C:\\temp 的大小为 {0} 字节", size);
上述代码可以递归计算C:\temp
文件夹的大小,并输出结果。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:C#先判断是否存在再创建文件夹或文件与递归计算文件夹大小 - Python技术站