问题标签 [filesystemwatcher]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
.net - 如何观察文件系统的变化
我正在我大学的分布式系统课程中做一个项目。我正计划创建类似于 Dropbox ( getdropbox.com ) 的东西,但带有某种非中心化的点对点扭曲。为此,我需要一些检测目录结构变化的方法。您认为 Dropbox 是如何做到这一点的?他们的实施效果非常好。我想知道他们是否在 windows 上使用来自 win32 api 的 FileSystemWatcher,以及依赖于 Linux 和 Mac 的类似平台。
filesystemwatcher - C# FileSystemWatcher 没有捕获 Perforce 还原
C# FileSystemWatcher 不会捕获 Perforce 还原。修改同一个文件时它工作正常。这会导致问题,因为还原会更改文件,但 FileSystemWatcher 不会收到通知。
你如何观察 Perforce 恢复?
谢谢你。
vb.net - 在 FileSystemWatcher 中处理多个更改事件
我有以下子:
当通过 FTP 上传文件时,我仍然收到多个更改文件通知。
我想修改 Try ,如果它在过去(时间)内发生,它也会抛出更改通知——比如说 3 秒。它应该是微不足道的,但由于某种原因,它今天没有出现在我的脑海中,我的思绪也没有围绕着我在谷歌上找到的答案。
谢谢,斯科特
.net - File Watcher - 获取在 Windows 中创建文件的进程名称?
有没有一种好方法可以获取在 Windows 中创建文件的进程名称?
我在 Windows 2000 Server C:\WINNT\Temp上有一个目录,其中填满了如下文件:
70618199
21834082
它们的大小始终为 121,201 KB。
我可以以编程方式“捕获”在此位置放置文件的程序名称或服务名称吗?
更多信息:
我对此做了更多研究。我重命名了文件 TIFF 并能够打开它。
该机器通过自定义编写的 ASP.NET 应用程序用作文档搜索工具。该机器在 E:\ 驱动器上包含大约 50,000 个 TIFF 文档。这台机器还运行 SQL Server 2000,打开全文索引。全文索引绝不会触及 TIFF - 但它不应该因为这是 SQL 对吗?但 FTS 确实需要打开索引服务。这个 TIFF 的奇怪之处似乎是 Web 服务器提供的最大的东西。IIS 或索引服务是否使用 C:\WINNT\Temp 进行某种缓存?想法?
解决方案(也许?)
这似乎是 Microsoft 索引服务。
当我关闭它时,这些文件都不会在 WINNT\Temp 中创建。
它似乎抓取了它找到的最大文件并将其复制到 WINNT\Temp 中。这很奇怪。当您处理 100MB+ TIFF 文件时,这可能会导致您的磁盘空间不足。很烦人。
猜猜我将关闭我的索引服务的“Web”分支。
.net - VB.NET FileSystemWatcher 多个更改事件
我有以下代码:
当我运行它并将更改保存到我的 C 驱动器上的文件时,代码运行良好,除了它执行 watcher_Changed() 方法四次。知道为什么吗?changeType 每次都是“4”。
谢谢。
c# - FileSystemWatcher.WaitForChanged 返回,但文件上仍有锁
我有一个程序可以将文档发送到 pdf 打印机驱动程序,并且该驱动程序会打印到特定目录。打印后,我想将 pdf 附加到电子邮件 (MailMessage) 并发送出去。
现在,我将文档发送到打印机(它会产生一个新进程),然后调用 FileSystemWatcher.WaitForChanged(WaitForChangedResult.Created) 但是当创建对象时,它仍然没有完成“打印”并且 pdf 打印机仍然有一个锁定它,当我尝试将该文件附加到电子邮件时抛出错误。
- 我考虑过一个普通的 Thread.Sleep(2000) 或其他什么,但这远不理想。
- 我考虑将附件代码放在 try/catch 块中并在失败时循环,但同样,这只是个坏消息。
我真的想不出一个优雅的解决方案。
.net - FileSystemWatcher 如何在另一台计算机目录上工作?
有些东西让我很感兴趣,我没有找到任何资源。
FileSystemWatcher 如何知道计算机“A”上的文件何时创建/删除/更改/重命名?
我认为这适用于轮询(观察者轮询服务器以检查更新),但在使用 Wireshark 验证网络活动后,我发现没有使用轮询。SMB 协议是否使用可观察/观察者模式?
在这种情况下,服务器如何知道客户端何时不再观察他?
当网络在观察期间下降并在之后立即恢复时会产生什么后果?
在另一台计算机上使用 FileSystemWatcher 似乎太容易了……
filesystems - 如何让 FileSystemWatcher 线程永远运行?
我需要让 FileSystemWatcher 在无限循环中运行以监视文件的更改,但是该文件每隔几天才会更改一次,并且可能每周更改一次。在FileSystemWatcher的 MSDN 示例中,有一个循环,而用户没有在控制台输入 q:
我不希望它一直可用,所以它不会被意外杀死——它必须在没有用户干预的情况下无限循环运行。我是否必须将循环更改为
所以线程不退出?仅此一项并不理想,因为它将与 CPU 挂钩 - 添加Thread.Sleep调用将消除 CPU 负载,在这种情况下,可能会长时间休眠,因为文件很少更改。这是最好的方法吗?我应该如何确保该线程保持活动状态,以便 FileSystemWatcher 可以在文件更改时采取行动?这是在 Windows 服务器(使用 .NET 框架 2.0 版)上运行的,因此如有必要,可以将其设为 Windows 服务。
c# - 为什么 FileSystemWatcher 检测不到来自 Visual Studio 的更改?
我制作了一个小型应用程序来响应文件夹中文件的更改。但是当我在 Visual Studio 2008 中编辑文件时,它从来没有检测到任何东西。如果我改为在记事本中编辑文件,一切都会按预期工作。
当然,Visual Studio 会在某个时候保存文件,但是当我关闭工作室时,观察者甚至不会触发。你知道我在这里缺少什么吗?
此示例代码 (C#) 应说明问题:
我发现Ayende 的一篇博客文章描述了同样的问题,但不幸的是没有解决方案。
c# - 将多个文件添加到目录时,FileSystemWatcher 出现文件访问错误
当将多个文件放入监视目录时,我遇到了 FileSystemWatcher 的问题。我想将文件放在目录中后立即对其进行解析。通常,第一个文件解析得很好,但是将第二个文件添加到目录会导致访问问题。有时,第一个文件甚至不解析。只有一个应用程序正在运行并监视此目录。最终,这个过程将在多台机器上运行,它们将监视一个共享目录,但只有一台服务器可以解析每个文件,因为数据被导入数据库并且没有主键。
这是 FileSystemWatcher 代码:
然后解析文件的方法:
移动第二个文件时,它正在捕获
System.IO.IOException:该进程无法访问文件“C:\Temp\TestFile.txt”,因为它正被另一个进程使用。
如果它在多台机器上运行,我希望看到这个错误,但它现在只在一台服务器上运行。不应该有其他进程使用此文件 - 我创建了它们并将它们复制到应用程序运行时的目录中。
这是设置 FileSystemWatcher 的正确方法吗?我怎样才能看到这个文件上的锁是什么?为什么它不解析这两个文件 - 我必须关闭 FileStream 吗?我想保留 FileShare.None 选项,因为我只想要一个服务器来解析文件 - 获取文件的服务器首先解析它。