C#递归删除过期文件和文件夹

按文件最后被访问时间计算,支持指定有效期天数,是否递归子文件夹,是否删除空路径。

/// <summary>
/// 删除过期文件
/// </summary>
/// <param name="path">当前路径</param>
/// <param name="days">有效期天数</param>
/// <param name="recursive">递归删除子文件夹和文件</param>
/// <param name="deleteIfEmpty">若执行完后当前路径为空文件夹,则删除(该属性仅针对当前路径,递归的子路径为空时一律被删除)</param>
static void DeleteExpiredFiles(string path, double days = 7, bool recursive = true, bool deleteIfEmpty = false)
{
    if (!Directory.Exists(path))
        return;

    string[] files = Directory.GetFiles(path);
    foreach (string file in files)
    {
        //从文件最后被访问的时间点到当前时间点,若已超过指定期限,则删除
        if (File.GetLastAccessTime(file) < DateTime.Now.AddDays(-days))
            File.Delete(file);
    }

    if (recursive)
    {
        string[] dirs = Directory.GetDirectories(path);
        foreach (string dir in dirs)
            DeleteExpiredFiles(dir, days, recursive, true);
    }

    if (deleteIfEmpty
        && Directory.GetFiles(path).Length == 0
        && Directory.GetDirectories(path).Length == 0)
        Directory.Delete(path);
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
学生个人文件管理系统 v2.0 A.声明: 1.非源代码。 2.有些用户没有设置自己的数据库服务器就直接登录或者注册,这样是不会成的, 请选择自定义服务器,然后填入自己的IP,数据库用户名以及密码,因为默认服 务器的IP是192.168.0.252. 3.暂不支持拖拽功能(将文件拖进去就能上传) 4.每隔10分钟系统会锁定一次,以防止其他用户恶意操作数据,需解锁请输入自己 的登录密码。【暂不支持设置间隔时间或者设置是否采取锁定策略】 5.暂不支持修改上传后的文件的属性(类别等) 6.在Win7上运行时需要管理员权限,请以管理员方式运行本程序。 B.新版特性: 1.修正了大文件上传或下载时服务器超时的Bug. 可上传500M以内的单个文件.(在空间大小足够的前提下) 2.修正了客户端上传文件的时间与服务器时间不同步的Bug, 同时在充分考虑服务器性能的前提下,给客户端提供了正 确的时间。 3.新增数据库压缩功能,针对数据库日志文件动辄上G的问题 提供了解决方案,使客户端用户使用更流畅。(管理员功能) 4.(2011-03-14)纠正了数据创建时错误,适应SQLServer不同 版本的数据库;纠正了在SQLServer下不同版本数据库备份时路径 错误问题。 5.(2011-03-14)纠正了程序中密码验证不区分大小写的错误。 6.(2011-03-18) 纠正了系统锁定后无法解锁的错误 2011-03-18 23:20 南充市扎针高手 李泽波

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值