|
@@ -13,51 +13,117 @@ namespace BaiduYunBeiFen.Controller
|
|
//静态控制器
|
|
//静态控制器
|
|
public static class FileGuanliContorller
|
|
public static class FileGuanliContorller
|
|
{
|
|
{
|
|
- //初始化计时器
|
|
|
|
- static System.Timers.Timer MainTimer = new();
|
|
|
|
|
|
+ //初始化空计时器
|
|
|
|
+ private static System.Timers.Timer MainTimer = new();
|
|
//计时器初始运行间隔
|
|
//计时器初始运行间隔
|
|
- static int InterValTime = 5000;
|
|
|
|
- private static string CheckPath = "";
|
|
|
|
- static string[]? FilePaths;
|
|
|
|
- static FileInfo? FileTool;
|
|
|
|
|
|
+ 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()
|
|
public static void InitTimeThread()
|
|
{
|
|
{
|
|
|
|
+ //初始化计时器
|
|
MainTimer = new System.Timers.Timer(InterValTime);
|
|
MainTimer = new System.Timers.Timer(InterValTime);
|
|
|
|
+ //赋予计时器事件
|
|
MainTimer.Elapsed += OnTimedEvent;
|
|
MainTimer.Elapsed += OnTimedEvent;
|
|
}
|
|
}
|
|
|
|
|
|
//运行计时器
|
|
//运行计时器
|
|
public static void StartTimeThread()
|
|
public static void StartTimeThread()
|
|
{
|
|
{
|
|
|
|
+ //运行计时器
|
|
MainTimer.Start();
|
|
MainTimer.Start();
|
|
}
|
|
}
|
|
|
|
|
|
//停止计时器
|
|
//停止计时器
|
|
- public static void StopTimeThread()
|
|
|
|
|
|
+ public static void StopTimeThread(string Path)
|
|
{
|
|
{
|
|
|
|
+ //停止计时器
|
|
MainTimer.Stop();
|
|
MainTimer.Stop();
|
|
}
|
|
}
|
|
|
|
|
|
//修改计时器运行间隔
|
|
//修改计时器运行间隔
|
|
public static void ChangeValTime(int ValTime)
|
|
public static void ChangeValTime(int ValTime)
|
|
{
|
|
{
|
|
|
|
+ //停止计时器
|
|
MainTimer.Stop();
|
|
MainTimer.Stop();
|
|
|
|
+ //计时器重新初始化
|
|
MainTimer = new System.Timers.Timer(ValTime);
|
|
MainTimer = new System.Timers.Timer(ValTime);
|
|
|
|
+ //计时器重新赋予事件
|
|
MainTimer.Elapsed += OnTimedEvent;
|
|
MainTimer.Elapsed += OnTimedEvent;
|
|
|
|
+ //计时器启动
|
|
MainTimer.Start();
|
|
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)
|
|
private static void OnTimedEvent(Object? source, ElapsedEventArgs e)
|
|
{
|
|
{
|
|
- CheckPath = Directory.GetCurrentDirectory();
|
|
|
|
- FilePaths = Directory.GetFiles(CheckPath);
|
|
|
|
|
|
+ //获取目标路径下的全部文件路径
|
|
|
|
+ FilePaths = Directory.GetFiles(FileCheckPath);
|
|
|
|
+ //判断所有文件
|
|
foreach (string item in FilePaths)
|
|
foreach (string item in FilePaths)
|
|
{
|
|
{
|
|
|
|
+ //初始化文件工具
|
|
FileTool = new FileInfo(item);
|
|
FileTool = new FileInfo(item);
|
|
|
|
+ if((DateTime.Now-FileTool.CreationTime).TotalHours > SaveTime)
|
|
|
|
+ {
|
|
|
|
+ //FileTool.Delete();
|
|
|
|
+ Console.WriteLine(item);
|
|
|
|
+ }
|
|
Console.WriteLine(FileTool.CreationTime.ToString());
|
|
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;
|
|
|
|
+ }
|
|
}
|
|
}
|
|
}
|
|
}
|