文件夹的创建和定期删除
1. 效果和代码
using System;
using System.Collections.Generic;
using System.IO;
using System.Windows.Forms;
namespace PeriodicallyDelete
{
public partial class FrmFileManagement : Form
{
string dist;
string longDoday;
string logDir;
string originalOKImgDir;
string originalNGImgDir;
string screenOKDir;
string screenNGDir;
string dataDir;
string txtDir;
public FrmFileManagement()
{
InitializeComponent();
dist = "D";
longDoday = DateTime.Today.ToLongDateString();
logDir = dist + ":\\Record\\Log\\" + longDoday;
originalOKImgDir = dist + ":\\Record\\OriginalImage\\" + longDoday + "\\OK";
originalNGImgDir = dist + ":\\Record\\OriginalImage\\" + longDoday + "\\NG";
screenOKDir = dist + ":\\Record\\Screen\\" + longDoday + "\\OK";
screenNGDir = dist + ":\\Record\\Screen\\" + longDoday + "\\NG";
dataDir = dist + ":\\Record\\Data\\" + longDoday;
txtDir = logDir + "\\" + longDoday + ".txt";
CreateDir();
}
#region 生成文件夹
void CreateDir()
{
if (!System.IO.Directory.Exists(logDir))
{
System.IO.Directory.CreateDirectory(logDir);
}
if (!System.IO.Directory.Exists(originalOKImgDir))
{
System.IO.Directory.CreateDirectory(originalOKImgDir);
}
if (!System.IO.Directory.Exists(originalOKImgDir))
{
System.IO.Directory.CreateDirectory(originalOKImgDir);
}
if (!System.IO.Directory.Exists(originalNGImgDir))
{
System.IO.Directory.CreateDirectory(originalNGImgDir);
}
if (!System.IO.Directory.Exists(screenOKDir))
{
System.IO.Directory.CreateDirectory(screenOKDir);
}
if (!System.IO.Directory.Exists(screenNGDir))
{
System.IO.Directory.CreateDirectory(screenNGDir);
}
if (!System.IO.Directory.Exists(dataDir))
{
System.IO.Directory.CreateDirectory(dataDir);
}
if (File.Exists(txtDir))
{
StreamWriter sw = File.AppendText(txtDir);
sw.WriteLine("2021-6-30");
sw.Close();
}
else
{
StreamWriter sw = new StreamWriter(txtDir, false);
sw.WriteLine("2021-6-30");
sw.Close();
}
#endregion
#region 删除文件夹
#endregion
}
private void buttonDeleteFile_Click(object sender, EventArgs e)
{
DeleteFile(logDir);
}
#region 删除文件夹
void DeleteFile(string path)
{
if (System.IO.Directory.Exists(path))
{
System.IO.Directory.Delete(path, true);
}
}
#endregion
public static List<string> getDirectory(string path)
{
List<String> list = new List<string>();
DirectoryInfo root = new DirectoryInfo(path);
DirectoryInfo[] di = root.GetDirectories();
for (int i = 0; i < di.Length; i++)
{
//list.Add(di[i].FullName);//全名
list.Add(di[i].Name);//获取当前路径最后一级文件夹名称
}
return list;
}
private void button1_Click(object sender, EventArgs e)
{
List<string> list = new List<string>();
list = getDirectory(dist + ":\\Record\\Log\\");
for (int i = 0; i < list.Count; i++)
{
string[] strArray = list[i].Split('年', '月', '日');
//计算两个时间点的时间间隔
DateTime dt = new DateTime(Convert.ToInt32(strArray[0]), Convert.ToInt32(strArray[1]), Convert.ToInt32(strArray[2]));
TimeSpan ts = DateTime.Now - dt;
if(ts.Days > 3)
{
DeleteFile(dist + ":\\Record\\Log\\" + list[i]);
}
}
}
}
}