控制台应用程序的字符串/双转换

时间:2017-10-24 14:19:10

标签: c# console-application

我在尝试弄清楚如何成功添加" 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.");
    }
}
}

1 个答案:

答案 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();
            }
        }
    }