我是初学者,正在尝试开发一种Windows服务,该服务不断检查任何新文件或更改文件的文件夹(或文件夹组)。一旦它检测到任何新文件或更改(文件或文件夹),它就会复制文件(和任何新文件夹)并将其粘贴到另一个位置。
我使用Windows窗体应用程序做了同样的事情,但在Windows服务中我不知道该怎么做 - 我该如何在Windows服务中执行此操作?
答案 0 :(得分:7)
您可以使用FileSystemWatcher类。
答案 1 :(得分:0)
以下是我们如何使用没有计时器的文件观察器来完成此任务
public void ProcessFile(string filepath)
{
var fileN ="newfilename";
string destfile = "E:\\2nd folder" + fileN;
File.Copy(filepath, destfile, true);
}
protected override void OnStart(string[] args)
{
String[] files = Directory.GetFiles("E:\\", "*.*");
foreach (string file in files)
{
ProcessFile(file);
}
var fw = new FileSystemWatcher("folderpath");
fw.IncludeSubdirectories = false;
fw.EnableRaisingEvents = true;
fw.Created += Newfileevent;
}
static void Newfileevent(object sender, FileSystemEventArgs e)
{
ProcessFile(e.FullPath);
}
答案 2 :(得分:-4)
以下是此问题的正确答案
public static void MyMethod()
{
String[] files = Directory.GetFiles("E:\\", "*.*");
foreach (string file in files)
{
var fileN = file.Substring(2);
string destfile = "E:\\2nd folder" + fileN;
File.Copy(file, destfile, true);
}
}
需要轮询以在修复时间间隔后观察文件....此代码正在观看文件2秒
protected override void OnStart(string[] args)
{
timer.Elapsed += new ElapsedEventHandler(OnElapsedTime);
timer.Interval = 2000;
timer.Enabled = true;
MyMethod();
}