123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Runtime.CompilerServices;
- using System.Text;
- using System.Threading.Tasks;
- using System.Timers;
- using System.IO;
- using System.Net.Http.Headers;
- namespace BaiduYunBeiFen.Controller
- {
- //静态控制器
- public static class FileGuanliContorller
- {
- //初始化空计时器
- private static System.Timers.Timer MainTimer = new();
- //计时器初始运行间隔
- private static int InterValTime = 2000;
- private static string[]? FilePaths;
- private static FileInfo? FileTool;
- private static DirectoryInfo? DirectoryTool;
- private static string FileCheckPath = Directory.GetCurrentDirectory();
- private static int SaveTime = 48;
- //赋予计时器初始事件
- public static void InitTimeThread()
- {
- //初始化计时器
- MainTimer = new System.Timers.Timer(InterValTime);
- //赋予计时器事件
- MainTimer.Elapsed += OnTimedEvent;
- }
- //运行计时器
- public static void StartTimeThread()
- {
- //运行计时器
- MainTimer.Start();
- }
- //停止计时器
- public static void StopTimeThread(string Path)
- {
- //停止计时器
- MainTimer.Stop();
- }
- //修改计时器运行间隔
- public static void ChangeValTime(int ValTime)
- {
- //停止计时器
- MainTimer.Stop();
- //计时器重新初始化
- MainTimer = new System.Timers.Timer(ValTime);
- //计时器重新赋予事件
- MainTimer.Elapsed += OnTimedEvent;
- //计时器启动
- MainTimer.Start();
- }
- //修改保存时间
- public static void SetSavetime(int ChangeTimeValue)
- {
- SaveTime = ChangeTimeValue;
- }
- //查看现在的保存时间
- public static int GetSaveTime()
- {
- return SaveTime;
- }
- //修改监控的文件路径
- public static void SetFileCheckPath(string FileCheckPathValue)
- {
- FileCheckPath = FileCheckPathValue;
- }
- //查看现在监控的文件路径
- public static string GetFileCheckPath()
- {
- return FileCheckPath;
- }
- //计时器事件
- private static void OnTimedEvent(Object? source, ElapsedEventArgs e)
- {
- //获取目标路径下的全部文件路径
- FilePaths = Directory.GetFiles(FileCheckPath);
- //判断所有文件
- foreach (string item in FilePaths)
- {
- //初始化文件工具
- FileTool = new FileInfo(item);
- if((DateTime.Now-FileTool.CreationTime).TotalHours > SaveTime)
- {
- //FileTool.Delete();
- Console.WriteLine(item);
- }
- Console.WriteLine(FileTool.CreationTime.ToString());
- }
- }
- //获取路径下的全部文件,并删除空文件夹
- private static string[] GetFileInFolder(string FloderPath)
- {
- //获取当前路径下的全部文件夹
- string[] directories = Directory.GetDirectories(FloderPath);
- //获取当前路径下的全部文件
- string[] result = Directory.GetFiles(FloderPath);
- //判断当前路径下是否还有文件夹
- if (directories.Count() > 0)
- {
- //有文件夹,递归读取目录及子目录下的全部文件
- foreach (string d in directories)
- {
- result = result.Concat(GetFileInFolder(d)).ToArray();
- }
- }
- //如果文件夹下没有文件或者文件夹,删除此文件夹
- else if (result.Count() == 0 && directories.Count() == 0)
- {
- DirectoryTool = new DirectoryInfo(FloderPath);
- DirectoryTool.Delete();
- }
- return result;
- }
- }
- }
|