【问题标题】:Notifying generation of files in a defined folder通知已定义文件夹中文件的生成
【发布时间】:2018-03-30 09:07:53
【问题描述】:

我要求一个进程会触发生成多个文件(即 N 个文件),会有一个应用程序会通知外部进程文件生成过程的成功(1)或失败(0)。如果在特定文件夹上生成 N 个文件,那么这将是成功标准。 N 个文件的目标文件夹和完成时间不同。除了完成完整的文件生成过程之外,根据数据量、网络拥塞等情况,在不同的日子里完成的时间也会不同。因此,调度作业以在特定时间获取文件计数在这里不是可行的解决方案。你能把你的建议放在这里来解决这个问题吗?

【问题讨论】:

  • 您是否正在寻找文件系统观察程序来通知您正在创建的新文件? docs.microsoft.com/en-us/dotnet/api/…
  • 写窗口服务并使用FileSystemWatcher
  • @Ken Tucker:我没有任何预先确定的方法。我将使用最好的方法。
  • @ChiragMM :感谢您的回复。您的意思是该服务将运行 24 * 7 并且在此期间 Filewatcher 将检查文件的存在并执行必要的操作。我将尝试实现它。

标签: c# .net file monitoring file-watcher


【解决方案1】:

你可以尝试FileSystemWatcher类如下:

 private void keepchecking()
{
FileSystemWatcher wt = new FileSystemWatcher();
wt.Path = path;
wt.NotifyFilter = NotifyFilters.LastWrite;
wt.Filter = "*.*";
wt.Changed += new FileSystemEventHandler(OnChanged);
wt.EnableRaisingEvents = true;
}

 private void OnChanged(object source, FileSystemEventArgs e)
{
 MessageBox.Show("New FIle Detected");
}

【讨论】:

  • 感谢 Zack 的回复。这与@ChiragMM 建议的一致。我会试试的..
  • 这不是你想要的吗?
  • 实现这个,它应该满足你的要求 :) ..如果您遇到任何问题,请务必评论。如果您发现答案有用,请不要忘记将其标记为答案
  • Zack 一旦处理完所有文件,该进程将通知。目标文件夹不相同。我可以将目标位置放在 N 个文件的配置文件中,但是编写我想要避免的 N 个案例,需要在这里进行一些头脑风暴。我忘记提及的另一部分将是工作流程的一部分,并且将有顺序执行步骤。假设第 3 步将检查文件生成的执行状态,因此我需要暂停第 3 步,直到文件生成过程完成。无论如何,感谢您的回复。
  • 你的案例对我来说有点复杂,从评论中理解,但我从这里看到的是你可以使用我的方法,你不觉得吗?这是最好的方法
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-10
  • 2020-02-22
  • 1970-01-01
  • 2014-11-18
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多