定期删除文件夹中的文件——C#

下面是自定义的一个函数,参数分别为:文件夹名称、文件后缀、保存天数

逻辑是获取当前系统的时间,和文件创建时间去作差,如果结果大于保存天数,就删除它

代码语言:javascript代码运行次数:0运行复制
        ///         /// 定期清除文件        ///         /// 文件夹        /// 文件后缀        /// 保存天数        private void DeleteFile(string fileDirect, string postFix, int saveDay)        {            DateTime nowtime = DateTime.Now; //获取当前时间            string[] files = Directory.GetFiles(fileDirect, postFix, SearchOption.AllDirectories);  //获取该目录下所有 .txt文件            foreach (string file in files)            {                FileInfo fileInfo = new FileInfo(file);                TimeSpan t = nowtime - fileInfo.CreationTime;  //当前时间  减去 文件创建时间                int day = t.Days;                if (day > saveDay)   //保存的时间 ;  单位:天                {                    File.Delete(file);  //删除超过时间的文件                }            }        }

调用如下:

我把文件夹路径存到ini文件中,首先读出路径

同样把保存天数存到ini文件中(存的是控件ridiobutton的索引值,具体操作点击这里),然后读出索引值再使用switch来解析索引值对应的天数

最后调用删除文件的函数,这里删除的是excel表格,注意格式为" *.xls ",*不能省略

代码语言:javascript代码运行次数:0运行复制
 pathLast = @"\" + day + ".xls"; //文件名            pathHeard = Ini.IniReadValue("配置文件", "path"); //文件夹            path = pathHeard + pathLast; //文件路径            string deleteDay = Ini.IniReadValue("清除文件", "day"); //定期删除文件天数            int deleteDayValue = -1;            switch (deleteDay)            {                case "4":                    deleteDayValue = -1;                    break;                case "3":                    deleteDayValue = 3;                    break;                case "2":                    deleteDayValue = 7;                    break;                case "1":                    deleteDayValue = 15;                    break;                case "0":                    deleteDayValue = 30;                    break;                default:                    break;            }            if (deleteDayValue >= 0)            {                DeleteFile(pathHeard, "*.xls", deleteDayValue);            }