【问题标题】:How to know when file is created on a network folder如何知道何时在网络文件夹上创建文件
【发布时间】:2013-11-05 04:39:54
【问题描述】:

您好,我在服务器上安装了 C# Windows 服务。

另一方面,该服务启动一个计时器,该计时器将从网络文件夹中读取文件。

我的客户要求在网络文件夹上创建一个固定长度的文件,然后他们有一个进程会对文件做一些事情,如果成功,文件会被删除,但如果出现错误,同一个文件,但创建扩展名为 .err。

我知道有 Windows API 可以在每次创建文件时触发一个事件,问题是这个文件夹不在运行服务的同一台服务器上。

这可能吗?将文件夹映射到服务器就行了?

【问题讨论】:

  • 你为什么不试试呢?
  • 最好使用通过 .NET Framework 提供的FileSystemWatcher,而不是利用 Windows API。
  • 我想您在说 API 时是在谈论文件系统观察器。您需要它在 UNC 路径上运行。看看这个帖子stackoverflow.com/questions/960318/…

标签: c# winapi service


【解决方案1】:

.NET 中的 FileSystemWatcher 类将使用适当的 Windows 更改通知 API,SMB 2.0 protocol 支持通过 Windows 更改通知 API 传递的更改通知。

因此,如果远程服务器支持 SMB 2.0(Windows Server 2008 或更高版本,运行 Samba 3 的 Unix 主机),那么 FileSystemWatcher 类应该可以解决问题。

【讨论】:

    猜你喜欢
    • 2014-01-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-23
    • 2013-11-06
    • 1970-01-01
    • 2014-03-30
    • 1970-01-01
    相关资源
    最近更新 更多