e盘下有录像文件,每天新建一个文件夹,名称格式如下“yyyyMMdd”,
我想做个程序,根据当前时间判断文件名,删除三天前的文件夹,求大神帮忙!!新号没分,好人平安
1条回答 默认 最新
- 你知我知皆知 2024-08-04 05:32关注
以下回答参考 皆我百晓生、券券喵儿 等免费微信小程序相关内容作答,并由本人整理回复。
这是一个简单的C#脚本,它将使用Windows API来删除指定日期范围内的所有文件。这个脚本需要管理员权限才能运行。
using System; using System.IO; namespace DeleteOldFolders { class Program { static void Main(string[] args) { // 获取系统时间戳 DateTime now = DateTime.Now; int daysAgo = 3; // 删除3天前的文件 // 计算要删除的日期 DateTime threeDaysAgo = now.AddDays(-daysAgo); string folderPath = @"E:\录像\yyyyMMdd"; // 要删除的文件夹路径 // 创建文件夹对象 DirectoryInfo directoryInfo = new DirectoryInfo(folderPath); // 遍历文件夹中的所有子文件和子文件夹 foreach (FileInfo file in directoryInfo.GetFiles()) { if (file.LastWriteTime >= threeDaysAgo) continue; // 如果文件创建于3天之前,则跳过 // 删除文件或文件夹 file.Delete(); } } } }
请注意,这个脚本可能不会删除所有在指定日期范围内创建的文件,因为它只能检查最后一个写入的时间,并且不能识别文件是否被其他应用程序修改了(例如,用户可能已经更改了文件内容)。如果你需要更精确地控制删除哪些文件,你可能需要使用更复杂的逻辑或者API来读取文件的属性。
此外,这个脚本会直接覆盖掉目标文件夹里的文件,如果目标文件夹里有其他文件,它们可能会被覆盖。在实际应用中,你应该先备份源文件夹的内容,然后再执行此操作。
解决 无用评论 打赏 举报