• 【nim语言】linux和windows 删除N天之前的文件


    临时目录或者日志目录的过期或者无用的文件,需要写个程序定时清除下N天之前的旧文件, 保证服务器硬盘不那么容易爆满。
    walkFiles 历遍文件,getCreationTime 获取文件创建时间, removeFile tryremoveFile 等来自os模块。
    日期时间的运算,需要用到times模块,getCreationTime 返回的是Time类型,indays now()是datetime类型。需要加上local()转换成datetime类型。

    import os
    import times
    import strformat
    import strutils
    
    const tmpath = "/data/tmp/"
    const usage = """
    
    删除 /data/tmp/ 目录下的过期文件。
    
    Usage: cleartmp days
    
    参数默认等于:
    cleartmp 30
    
    删除180天以前的文件:
    cleartmp 180
    """
    echo "---------------------"
    echo usage
    echo "当前时间:" & $now()
    
    proc cleartmp(): int {.discardable.} =
    
        var day = 30
        if paramCount() == 1:
            day = parseInt(paramStr(1))
    
        echo fmt"输入的天数: {day}"
    
        for f in walkFiles(tmpath & "*"):
            var fctime = getCreationTime(f).local()
    
            if indays(now() - fctime) > day:
                result.inc
                removeFile(f)
    
        echo fmt"清理的文件数量:{result}"
        echo "---------------------
    
    "
     
    cleartmp()
    

    代码是跨平台的,编译得到可执行文件:
    nim c -d:release cleartmp.nim

    好像看了一些奇怪的东西
  • 相关阅读:
    二分图的最大匹配
    染色法判定二分图
    kruskal求最小生成树
    prim算法求最小生成树
    floyd
    spfa算法
    bellman_ford
    Dijkstra
    文件操作_1-18 选择题
    会话控制_2-5 编程练习
  • 原文地址:https://www.cnblogs.com/gayhub/p/15097107.html
Copyright © 2020-2023  润新知