首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Windows Service中实现文件处理?

如何在Windows Service中实现文件处理?
EN

Stack Overflow用户
提问于 2011-05-04 22:27:32
回答 2查看 2.3K关注 0票数 1

如何为多个目录创建一个监控窗口服务(C#),以便扫描新文件并(如果有)编辑、重命名、将它们移动到其他位置?我已经创建了一个WorkerTask(),但它只适用于我启动服务时目录中的文件,而不适用于我稍后放在那里的文件。它必须全天候运行。

代码语言:javascript
复制
private void WorkerTask() {
    while (running) {
    // only 1 input dir in this case
    string[] filePaths = Directory.GetFiles(input_dir, "*.jpg");
      if (filePaths.Lenght > 0)
      {
        foreach (String file_path in filePaths)
        {
            // some other operations before moving
            File.Move(file_path, output_file_path);
        }
      }
    }
}

我怎样才能不断地扫描新的(只是完整的!)要上载到此文件夹的文件?它必须在两次扫描之间有2-3秒的最大延迟,这样一旦文件到达文件夹,它就会被处理和移动。我见过FileSystemWatcher(),但我认为尝试在多个输入文件夹中实现它可能不是一个好主意。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-05-04 22:37:04

代码语言:javascript
复制
public void Start()
{
    FileSystemWatcher fsw = new FileSystemWatcher();
    fsw.Path = "\\server\share";  //or use your inputdir
    fsw.NotifyFilter = NotifyFilters.Size;  //(several others available)
    fsw.Filter = "*.jpg";
    fsw.Changed += new FileSystemEventHandler(OnChanged);
    fsw.EnableRaisingEvents = true;
}

private void OnChanged(object source, FileSystemEventArgs e)
{
    //do stuff.
}
票数 3
EN

Stack Overflow用户

发布于 2011-05-04 22:29:48

使用FileSystemWatcher类,这就是它的用途。

它有几个你可以订阅的事件--当文件被创建、更新和删除时。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5884999

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档