问题标签 [readdirectorychangesw]

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.

0 投票
3 回答
819 浏览

winapi - ReadDirectoryChangesW 并确定导致更改的进程

如何确定哪些进程正在更改哪些文件。

我确实找到了这个:

FileSystemWatcher:如何知道哪个进程进行了更改?

但我很好奇最近有什么变化吗?是否有可能确定哪个进程正在对文件系统进行更改,无论是使用ReadDirectoryChangesW还是其他方式?我宁愿不必编写或使用内核驱动程序。

0 投票
3 回答
1087 浏览

buffer-overflow - ReadDirectoryChangesW:异步使用时如何检测缓冲区溢出?

我将ReadDirectoryChangesW (Windows API) 与GetQueuedCompletionStatus结合使用。如何检测可能的缓冲区溢出以了解至少一个文件系统更改事件已丢失?

0 投票
1 回答
1650 浏览

delphi - 为什么只有 FILE_NOTIFY_CHANGE_LAST_WRITE 过滤器的 ReadDirectoryChangesW 会在文件编辑时发出多个事件?

我在单独的线程应用程序配置文件中进行监控,在某些情况下,它可能是另一个 XML 或另一个 XML 中的 INI。线程监控目录的代码(在Delphi中)是这样的:

为什么它至少发出 2 次信号以及当配置文件中的某些标志被更改并保存时如何获得正确的信号?

0 投票
0 回答
940 浏览

winapi - ReadDirectoryChangesW 文件移动解决方法

背景

用于监视文件系统更改的 Windows API ReadDirectoryChangesW无法可靠地报告文件移动操作。相反,它只是通知 Deleted + Created。

问题

可以实施哪些变通方法来在 Windows 上实现这种“移动事件”效果?我敢肯定我不是第一个处理这个问题的人。


我自己的第一个想法是将所有内容的 SHA1 和保存在受监视的目录(可能在 SQLite 数据库中)并将更改的文件与 SHA1 进行比较,这样如果发生删除+创建并且它们的 sha1 和匹配,我们可以放心地假设它是一个移动操作。不过,这感觉有点矫枉过正,我想知道是否其他人已经找到了更好的解决方法。

有任何想法吗?

0 投票
2 回答
1307 浏览

c++ - ReadDirectoryChangesW 问题

我正在使用 ReadDirectoryChangesW 异步监视目录更改,基于这个问题我实现了一个监视给定目录的函数,但我仍然收到错误消息 GetQueuedCompletionStatus(): Timeout

我需要知道如何ReadDirectoryChangesWIoCompletionPort.

请提供任何帮助。

0 投票
1 回答
670 浏览

filesystemwatcher - 在 DataOntap 上使用 FileSystemWatcher

我有一个项目可以监视当前由 Windows Server 计算机托管的网络共享上的文件创建/删除活动,但我正在考虑将文件移动到运行 DataOntap 的 NetApp 机器上。他们的 API 文档说他们支持 ReadDirectoryChangesW,这是 FileSystemWatcher 在幕后使用的,但我担心它可能不是一个完整的实现。有什么我应该注意的陷阱吗?

0 投票
1 回答
1780 浏览

c++ - CreateFile ,ReadDirectoryChanges 问题

ReadDirectoryChangesW用来监视我打开的文件夹CreateFile,一旦添加了文件,我就会调用一个函数(OnFileChanged)来读取大小并打开它进行读取,我的应用程序适用于小文件,但是当我尝试时会出现问题将一个大文件复制到我的文件夹(7,24 M)中,Permission denied调用 fopen 读取它后出现错误。

观看过程基于

我无法弄清楚如何处理文件并且不让我阅读它?我试图在调用后调用 Sleep()OnFileChanged并在它完成时醒来但徒劳无功。请有任何想法。

0 投票
1 回答
1738 浏览

python - ReadDirectoryChangesW 似乎缺少事件

我一直在尝试让 ReadDirectoryChangesW 监视子树的文件更改,但我发现我得到的结果不一致。以下是一个说明问题的自包含测试用例。当我运行它时,它有时会产生:

下一次它可能会产生:

我创建了一个巨大的缓冲区,并且被更改的文件数量非常少(3 个文件)。

编码:

0 投票
2 回答
506 浏览

c++ - wchar_t 到字符串的转换

我想将strFileNotifyInfo[1].FileName (Wchar_t) 转换为字符串,以便我可以看到文件路径。但我不能让它工作。

这是我的代码:

0 投票
1 回答
1084 浏览

c++ - GetQueuedCompletionStatusEx()、ReadDirectoryChangesW()

我正在使用GetQueuedCompletionStatusEx()ReadDirectoryChangesW()尝试接收多个文件系统层次结构更改的通知。

我注意到当一次有很多更改时,我会收到错误 0x10C 的完成数据包。此错误代码不在我包含的头文件中的任何位置,也不在文档中(http://msdn.microsoft.com/en-us/library/windows/desktop/aa365465(v=vs.85 ).aspx )。后来稍微挖掘一下,我发现它是STATUS_NOTIFY_ENUM_DIRntstatus.h. 文档中既没有提到 STATUS_NOTIFY_ENUM_DIR,也没有必要包含 ntstatus.h。MSDN 表明它应该是ERROR_NOTIFY_ENUM_DIR. 所以我想知道,这是文档中的错误还是我做错了什么?