我有这个问题,
我的老板想要一个可以输入路径的程序,Console.ReadLine(directory);
这无关紧要,我让这部分工作。事实上,整个代码/程序都在正常工作。路径的要点是程序扫描给定目录/子目录中的所有文件以获取最后一次写入时间。他想在这方面付出最小的努力。所以计划是每24小时使用Windows启动这个程序一次。这个“最小努力”部分的唯一问题是您必须在每次启动时输入路径。所以它实际上不会自动运行。
问题是:有没有办法避免这种情况?例如,当它完成睡眠时,转到?Thread.Sleep();
下方的标签。Console.ReadLine(directory);
所以不是一天一次,而是睡 24 小时,工作 1 分钟?
如果有任何帮助,代码如下:
using System.IO;
using System.Security.Permissions;
namespace CheckWithinTime
{
class Program
{
public static void Main(string[] args)
{
Console.WriteLine("Which folder do you wish to scan?");
string path = Console.ReadLine();
//copies everything from the console to a .txt file
FileStream filestream = new FileStream(@"C:\Logs\Log.txt", FileMode.Create);
var streamwriter = new StreamWriter(filestream);
streamwriter.AutoFlush = true;
Console.SetOut(streamwriter);
Console.SetError(streamwriter);
//this is the path which you type in a the beginning of the program
string[] files = Directory.GetFiles(path, "*.*", System.IO.SearchOption.AllDirectories);
List<string> updatedFiles = new List<string>();
DateTime from = DateTime.Now.AddDays(-1);
DateTime to = DateTime.Now;
foreach (string name in files)
{
FileInfo file = new FileInfo(name);
string fullname = file.FullName;
//checks if the last writed time occured less then 24 hours ago, if it's not it will not be loggeed
if (file.LastWriteTime >= from && file.LastWriteTime <= to)
{
updatedFiles.Add(name);
Console.WriteLine(file.FullName + " ; " + "last changed at >> " + " ; " + file.LastWriteTime.ToString());
//Console.WriteLine("File created at >> " + file.CreationTime.ToString());
//Console.WriteLine("File last opened at >> " + file.LastAccessTime.ToString());
Console.WriteLine();
}
}
streamwriter.Close();
filestream.Close();
//The mail class basicly sends an e-mail to the server with the log file, but this is irrelevant
Mail();
}
}
}
它曾经只是一个简单的文件系统观察器。之后就像现在一样,但没有Console.ReadLine()
部分。而现在他想给出一条道路。
如果有人可以告诉我一种避免 的方法Console.ReadLine()
,但仅在需要时使用调用它。我会很感激!
提前为我的大文本道歉。