我在尝试弄清楚如何成功添加" daysPast"时遇到了一些困难。在foreach / if循环中作为double。它目前是一个字符串,警报要求加倍。代码本身用作设置为特定天数的文件/目录删除程序。非常感谢任何帮助!
的App.config
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="FilePath" value="C:\testFolder\" /><!--root folder -->
<add key="TimeSpan" value="-14 days"/><!--adjust days -->
</appSettings>
</configuration>
Program.cs的
using System;
using System.IO;
using System.Configuration;
using System.Text;
public class Program
{
static void Main(string[] args)
{
//number of days from App.config
String daysPast = ConfigurationManager.AppSettings["TimeSpan"];
String path = ConfigurationManager.AppSettings["FilePath"];
// Reference to a directory.
DirectoryInfo di = new DirectoryInfo(path);
// Reference to each directory in that directory.
DirectoryInfo[] diArr = di.GetDirectories();
//StreamWriter file name
string fileName = "fileResults_" + DateTime.Now.ToString("yyyy-MM-dd-HH-mm") + ".txt";
try
{
foreach (DirectoryInfo dir in diArr)
{
if (dir.LastWriteTime < DateTime.Now.AddDays(daysPast))
Directory.Delete(dir.FullName, true);
using (StreamWriter sw = new StreamWriter(fileName, true))
{
sw.WriteLine("File(s) deleted on: " + DateTime.Now);
sw.WriteLine("============================================");
sw.WriteLine("");
sw.WriteLine(fileName);
sw.WriteLine("");
sw.WriteLine("End of list");
sw.WriteLine("");
sw.Flush();
}
}
}
catch (InvalidCastException)
{
Console.WriteLine("There was an issue, please try again.");
}
}
}
答案 0 :(得分:0)
结束&#34; DateTime.Now.AddDays(daysPast)&#34;,用&#34; DateTime.Parse(daysPast)&#34;:
try
{
foreach (DirectoryInfo dir in diArr)
{
if (dir.LastWriteTime < DateTime.Parse(daysPast))
Directory.Delete(dir.FullName, true);
using (StreamWriter sw = new StreamWriter(fileName, true))
{
sw.WriteLine("File(s) deleted on: " + DateTime.Now);
sw.WriteLine("============================================");
sw.WriteLine("");
sw.WriteLine(dir);
sw.WriteLine("");
sw.WriteLine("End of list");
sw.WriteLine("");
sw.Flush();
}
}
}