【LabVIEW开发】如何使用LabVIEW自动删除数据文件?

渡尽劫波兄弟在,相逢一笑泯恩仇

一、简介

  我在上一篇如何使用LabVIEW自动保存数据?的文章中介绍了怎样使用labview自动保存下位机发送到上位机的数据,这些需要保存的数据都存储在特定格式的文件中,当我们需要查询这些试验数据时,直接读取这些数据文件就能看到,还可以将这些数据另存为word或PDF文件。
  但是,我们还有一个问题需要解决:当电脑硬盘中的数据越存越多的时候,迟早会把硬盘撑爆,导致新数据无法存储、电脑运行速度变慢、卡顿等各种问题。所以,适当删除时间比较久远的数据,清理内存是很有必要的。手动删除旧数据是可行的,但是在现今智能化越来越普及、越来越追求高效率的大趋势下,上位机自动删除数据文件就应该成为一项标配功能。
  接下来我将介绍使用LabVIEW自动删除文件的方法,这个方法完全是我闭门造车想出来的,属于一家之言,如果大家还有更好的方法,欢迎批评指正。

二、实战练习

  我的开发环境:Windows10(64bit)、LabVIEW2017

1、 编程思路

  自动删除文件,首先要明确一个问题,就是如何识别需要删除的文件?一个文件最重要的两个特征是文件名和后缀,只要识别了文件名,基本上就可以锁定这个文件,然后才可以进行自动删除。一般的数据文件都保存在一个固定路径的文件夹中,那么我们就需要识别这个文件夹中的所有数据文件,识别完以后,就是筛选文件,把符合删除条件的文件筛选出来,将其删除,不符合条件的文件继续保留。
  这里就引出了第二个问题,如何筛选符合条件的文件?我在网上查了下,普通住宅小区的监控视频系统保存视频文件的最长期限是一个月,也就是说你最多只能查到1个月前监控录像,再早一点的文件都被自动删除或者被新文件覆盖。我个人觉得工控上位机传输的数据量一般都不是很大,也没有视频文件那么占内存,删除超过半年或者1年文件比较合适。当然,具体问题具体分析,文件究竟要保存多久,还是应以实际应用为准,因为每个工控机硬盘的大小以及数据文件的大小都不一样。
  通过对以上两个问题的分析,自动删除文件的编程思路就很清晰了:读取特定路径文件夹中的所有文件的文件名,然后根据文件名判断文件的创建时间,如果创建时间超过设定的时间(比如一年),就把该文件删除,不满足条件的保留下来。
  那要如何根据文件名来判断文件的创建时间呢?我在上一篇的LabVIEW自动保存数据的文章中,是以系统时间给数据文件命名的,读取了该文件的文件名,对文件名进行处理,就可以知道该文件是什么时候创建的。这时候可能有人要问了,为啥不直接读取文件的创建时间呢,Windows系统会自动记录每一个文件的创建时间,说实话我也觉得直接读Windows系统记录的创建时间最好,可是我不会啊。

2、实现过程

  LabVIEW中对应的删除文件的模块在下图所示的位置:


图1 关键函数模块位置

  在“高级文件函数”栏中,有“罗列文件夹”、“删除”等需要用到的功能模块。
  再来看下实现自动删除文件的源程序,如下图2所示:


图2 自动删除文件VI程序面板

  路径我直接用“应用程序目录”模块,然后将目录里的文件罗列出来,罗列模块会输出文件名,还有文件夹名。我们只需要文件名,文件名是一个字符串,由于我之前的文件都是以系统时间命名的,时间格式为%Y-%m-%d %H'%M'%S,也就是说程序读到的文件名是“2023-08-23 16‘36’20”这种类型的字符串,我们只需要这个文件名中的年月日参数,时分秒没有意义。
  然后以%Y-%m-%d格式读取当前的系统时间,分别截取出两个时间字符串数组年、月、日数据,并将字符串转换成数字,便于后面进行加减乘除运算。需要注意的是,年份占字符串数组4个元素,月份和日只占2个元素,中间的"-"占1个元素。

  最后再用当前时间的年数据减去文件名的年数据,为换算成天数,差再乘以360天;同理月份数据相减,差乘以30换成天数;日数据相减得到天数。最后将3个天数相加,得到数据文件建立的时间距离当前时间有多少天,这个计算出来的天数如果超过设定的天数,就将对应文件删除,否则保留。
  程序中“应用程序目录”模块的位置如下图所示:


图3 应用程序目录模块位置

  整个程序的逻辑思路其实很简单,理解了之后就很容易写出来。如果保存的数据文件不以系统时间命名,我这个程序就无法自动删除文件,还得另寻他法。有更好思路的大佬可以分享出来,大家一起学习。

3、结果

  本人实测,是可以将对应文件夹中的以系统时间命名的文件删除的,自动删除文件的过程很短,不好录制视频,就不po图了,感兴趣的可以自己去试试。

三、小节

  1、这个删除文件的程序不用放在while循环中,也就是说,在软件打开的时候运行一次就够了,因为在实际应用中我们不需要一直删除文件,其只用放在上位机主程序的while循环外面就行;
  2、在自动保存数据文件的时候,要用系统时间给文件命名,否则本程序将失效;至于如何自动用系统时间保存数据文件,可以参考我上一篇文章;
  3、这个程序删除文件的效果是彻底删除,回收站里是没有对应文件的,数据无价,在使用本程序的时候,最好先将重要数据文件复制备用一份,再来做删除试验。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,711评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,079评论 3 387
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,194评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,089评论 1 286
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,197评论 6 385
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,306评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,338评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,119评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,541评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,846评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,014评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,694评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,322评论 3 318
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,026评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,257评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,863评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,895评论 2 351

推荐阅读更多精彩内容