c#中文件夹下面文件夹下面的文件超过多少天删除文件
时间: 2025-02-04 10:25:51 浏览: 77
在C#中,你可以使用以下代码来删除指定文件夹及其子文件夹中超过一定天数的文件。以下是一个示例代码,演示如何实现这一功能:
```csharp
using System;
using System.IO;
class Program
{
static void Main(string[] args)
{
// 指定要清理的根文件夹路径
string rootPath = @"C:\YourFolderPath";
// 指定文件的最长存在天数
int maxDays = 30;
// 调用清理方法
CleanDirectory(rootPath, maxDays);
}
static void CleanDirectory(string targetDir, int maxDays)
{
try
{
// 获取当前时间
DateTime currentDate = DateTime.Now;
// 获取目标文件夹中的所有文件和子文件夹
string[] files = Directory.GetFiles(targetDir);
string[] dirs = Directory.GetDirectories(targetDir);
// 遍历所有文件
foreach (string file in files)
{
// 获取文件的最后写入时间
DateTime lastWriteTime = File.GetLastWriteTime(file);
// 计算文件存在的时间
TimeSpan fileAge = currentDate - lastWriteTime;
// 如果文件存在时间超过指定的天数,则删除文件
if (fileAge.TotalDays > maxDays)
{
File.Delete(file);
Console.WriteLine($"Deleted file: {file}");
}
}
// 递归清理子文件夹
foreach (string dir in dirs)
{
CleanDirectory(dir, maxDays);
}
// 如果目标文件夹为空,则删除该文件夹
if (Directory.GetFiles(targetDir).Length == 0 && Directory.GetDirectories(targetDir).Length == 0)
{
Directory.Delete(targetDir);
Console.WriteLine($"Deleted directory: {targetDir}");
}
}
catch (Exception e)
{
Console.WriteLine($"Error: {e.Message}");
}
}
}
```
这个程序的工作原理如下:
1. `CleanDirectory` 方法接受一个文件夹路径和最大存在天数作为参数。
2. 获取当前时间。
3. 获取目标文件夹中的所有文件和子文件夹。
4. 遍历所有文件,检查每个文件的最后写入时间,如果文件存在时间超过指定的天数,则删除文件。
5. 递归调用 `CleanDirectory` 方法来清理子文件夹。
6. 如果目标文件夹为空,则删除该文件夹。
阅读全文
相关推荐


















