开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 356|回复: 15
收起左侧

[已解决] 怎么写定时自动备份并删除创建时间最早的旧文件?

 关闭 [复制链接]
结帖率:75% (6/8)
发表于 2024-10-8 11:52:32 | 显示全部楼层 |阅读模式   福建省泉州市
5精币


假设我有个重要的文件 a.ini 需要定时备份避免丢失 我是这么写的:

计次循环()

延迟(2小时或每天)

写到文件(保存目录+"/a_"+取现行时间()+.ini ,新数据)

结束

我的做法是给每次保存的 a.ini 文件名加时间标识,那么问题来了7天过去,这个保存目录里已经保存了几百个 a_"+取现行时间()+.ini  文件
我的要求是最大保存数是5个超过就会自动删除最早日期创建保存的文件

我的想法是:每次保存新文件前取   文件_枚举 (, , 返回文件路径数组, , , )   
计次循环()
文件_取时间 (返回文件路径数组[i],返回创建时间 , , )
加入数组(返回创建时间 )

结束

然后通过    数组_排序(返回创建时间,按照时间)  

思路是这么个思路,但我卡在:    数组_排序(只能按照大小排序, 没有时间排序)  文件_枚举(只能字母排序返回,不能按照创建时间)

后面就不知道该咋写了


最佳答案

查看完整内容

取文件的创建时间来排序

回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳
结帖率:100% (27/27)

签到天数: 5 天

发表于 2024-10-8 11:52:33 | 显示全部楼层   浙江省宁波市
取文件的创建时间来排序

新建 易程序.zip

269.53 KB, 下载次数: 6

评分

参与人数 1荣誉 +1 收起 理由
笨潴 + 1 热心帮助他人,荣誉+1,希望继续努力(*^__^*) 嘻嘻!

查看全部评分

回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 24 天

发表于 2024-10-8 11:55:18 | 显示全部楼层   广东省深圳市
你可以把这个时间戳写在配置里嘛, 读取时间戳与当前时间戳对比, 超过多久的就删除。
回复

使用道具 举报

结帖率:78% (18/23)

签到天数: 9 天

发表于 2024-10-8 11:59:39 | 显示全部楼层   浙江省嘉兴市
针对的是相同内容的文件,好像也没太必要,放网盘里直接点吧
回复

使用道具 举报

结帖率:75% (6/8)

签到天数: 4 天

 楼主| 发表于 2024-10-8 12:22:43 | 显示全部楼层   福建省泉州市
走一回 发表于 2024-10-8 11:59
针对的是相同内容的文件,好像也没太必要,放网盘里直接点吧

内容肯定不一样,每次都是新增数据  现在我遇到难点是怎么自动删除旧的备份文件空出空间保存新数据
比如: 昨天保存的文件是 1.txt  2.txt   3.txt   今天要保存的就是 5.txt 6.txt   7.txt  现在需要按照文件创建时间产生旧的1.txt  2.txt   3.txt  
回复

使用道具 举报

结帖率:75% (6/8)

签到天数: 4 天

 楼主| 发表于 2024-10-8 12:24:09 | 显示全部楼层   福建省泉州市
qq73s5456 发表于 2024-10-8 11:55
你可以把这个时间戳写在配置里嘛, 读取时间戳与当前时间戳对比, 超过多久的就删除。  ...

你这个更麻烦  毕竟新文件一直保存 也没法固定  我的要求是: 每次自动保存新文件,保存的文件数超过5个就删除旧文件
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 24 天

发表于 2024-10-8 12:41:41 | 显示全部楼层   广东省深圳市
千狐 发表于 2024-10-8 12:24
你这个更麻烦  毕竟新文件一直保存 也没法固定  我的要求是: 每次自动保存新文件,保存的文件数超过5个 ...

那你文件名不是以时间戳命名了嘛, 读取文件名, 分离出时间戳, 冒泡排序,
回复

使用道具 举报

结帖率:75% (6/8)

签到天数: 4 天

 楼主| 发表于 2024-10-8 13:03:48 | 显示全部楼层   福建省泉州市
qq73s5456 发表于 2024-10-8 12:41
那你文件名不是以时间戳命名了嘛, 读取文件名, 分离出时间戳, 冒泡排序,  ...

取文件名里的时间没有通用性,因为不是每个文件都是一样格式的名字,我能控制我的软件生成的文件名格式但控制不了别的软件( a.txt b.txt cddd.txt  ONuU5e4shK5K95raR5w4Og.jpg)所以还是的取文件创建时间才准确
回复

使用道具 举报

结帖率:100% (1/1)

签到天数: 24 天

发表于 2024-10-8 13:34:58 | 显示全部楼层   广东省深圳市
千狐 发表于 2024-10-8 13:03
取文件名里的时间没有通用性,因为不是每个文件都是一样格式的名字,我能控制我的软件生成的文件名格式但 ...

定义数据类型, 数组
大概就这样
文件枚举()   得到   文件数组

然后循环 取文件 创建时间

a.文件时间= 时间_到时间戳(取文件创键时间(文件数组))
a.文件路径=文件数组

然后 对 a.文件时间 进行 冒泡排序,  

最后 循环删除   a.文件路径   , 保留几个就 循环次数减下来.
回复

使用道具 举报

结帖率:0% (0/1)
发表于 2024-10-8 14:55:28 | 显示全部楼层   河北省保定市
可以不需要文件时间。。。
  
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
时钟1.时钟周期 = 1000 × 3600  ' 一小时,可以自己定
子程序名返回值类型公开备 注
_时钟1_周期事件  
变量名类 型静态数组备 注
当前文本序号整数型 
要删除文件序号整数型 
如果真 (当前文本序号 > 9)  ' 10个文件循环 0-9
当前文本序号 = 0
备份文件操作程序 ()
要删除文件序号 = 当前文本序号 + 1  ' 序号加1的就是最前面的文件
如果真 (要删除文件序号 > 9)  ' 10个文件循环 0-9
要删除文件序号 = 0
如果真 (文件是否存在 (“文件名前缀”到文本 (要删除文件序号)“.备份文件后缀”))
删除文件 (“文件名前缀”到文本 (要删除文件序号)“.备份文件后缀”)
当前文本序号 = 当前文本序号 + 1

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表