我希望能够跟踪特定程序调用的文件读/写。 不需要有关实际事务的信息,只需要涉及的文件名。

是否有跨平台解决方案?
什么是各种平台特定方法?
在Linux上,我知道有strace / ptrace(如果有更好的方法那么好)。
我认为在Mac OS上有ktrace。
Windows怎么样?

此外,如果可以阻止(停止)文件访问直到稍后的时间,那将是惊人的。

谢谢!

===============>>#1 票数:1

最简洁的答案是不。 有许多平台特定的解决方案都可能具有类似的接口,但它们本身并不是跨平台的,因为文件系统往往是特定于平台的。


我如何在每个平台上做得好?

同样,它将取决于平台:)对于Windows,如果您想要跟踪飞行中的读/写,您可能必须使用IFS。 如果您只是想收到更改通知,可以使用ReadDirectoryChangesW或NTFS更改日志。

我建议只使用NTFS更改日志,因为它往往更可靠。

===============>>#2 票数:0

只要您的程序启动您要监视的进程,您就可以编写调试器,然后每次进程启动或退出时都会收到通知。 当进程启动时,您可以注入一个DLL来挂钩每个进程的CreateFile系统调用。 然后,钩子可以使用管道或套接字向调试器报告文件活动。

===============>>#3 票数:0

在Windows上,您可以使用命令行工具Handle或GUI版Process Explorer来查看给定进程已打开的文件。

如果您正在寻找在您自己的程序中获取此信息,您可以使用Microsoft的IFS工具包编写文件系统过滤器。 文件系统过滤器将显示所有进程的所有文件系统操作。 文件系统过滤器在AV软件中用于在文件打开之前扫描或扫描新创建的文件。

  ask by mgsloan translate from so

未解决问题?本站智能推荐:

2回复

在Linux平台上捕获文件系统系统调用

我想非常详细地捕获文件系统上的所有系统调用。 例如对于write系统调用,我想记录目标文件,写入的字节数和发生写入的偏移量。 当前,我想使用inotify实现这样的记录器。 但是,它无法提供此类详细信息。 例如,对于write它不提供书面和偏移的字节数。 一种替代方法是使用在保险丝
5回复

跨平台隐藏文件检测

对隐藏文件进行跨平台处理的最佳方法是什么? (最好是在Python中,但其他解决方案仍然很受欢迎) 只需检查一个领先的'。' 适用于* nix / Mac,文件属性适用于Windows。 但是,这看起来有点简单,也没有考虑隐藏事物的替代方法(.hidden文件等)。 有没有一种标准
1回复

Rails中的跨平台文件名

我有一个输入字段,用户在其中输入文件名。 然后,将创建具有该名称的文件。 问题出在不同操作系统上的文件系统之间。 在用户方面,我有一个javascript regexp。 这里是: 它仅允许使用字母数字字符和指定的符号。 另外,我还需要服务器端代码来尝试创建文件(例如UNIX
4回复

跨平台C ++文件系统监视程序

我正在寻找一个跨平台文件系统监视程序,类似于.NET中的FileSystemWatcher类。 因为它是用于守护程序/服务的,所以我不喜欢Qt的QFileSystemWatcher 。 我真的很想避免这种情况,因为我不想依赖Qt,因为我的程序将成为守护程序。 我也看到了一个建议,对于被
2回复

跨平台API监视C语言中的文件系统?

我正在寻找一个跨平台库来检测何时添加或修改目录中的文件。 我知道有特定于操作系统的方法来执行此操作(对于Linux是intify,对于Windows是FindFirstChangeNotification,等等。)。 但是,有没有一个平台无关的库专门在C中工作 ? (就像C ++中的
1回复

GAMS中跨平台文件系统操作的最佳实践

我想通过一些GAMS代码来操纵文件系统。 我是GAMS新手,是中游和中级项目新手,但是我习惯于用其他语言编写跨平台文件操作。 对于跨平台的Linux和Windows来说,这段代码将是一个很好的选择。 现在有一条注释掉的行 我想取消注释(启用),但是,我很难找到有关此文件是否可以跨平
1回复

用于安装自定义文件系统的跨平台解决方案

我需要将我的数据作为机器文件系统的一部分。 在Windows中,似乎我有3个选项: Eldos的“回调文件系统”( http://www.eldos.com/cbfs/ ) 杜坎(dokan-dev.net) Pismo File Mount( http://ww
2回复

C ++中跨平台创建文件对话框的方法

我正在编写一个应用程序,在其中我需要能够浏览现有文件并创建一个新文件。 我需要为此创建用户界面。 有没有好的跨平台免费库可以帮助我做到这一点?
8回复

是否有一个跨平台的Java方法来删除文件名特殊字符?

我正在制作一个跨平台的应用程序,它根据在线检索的数据重命名文件。 我想清理我从当前平台的Web API中获取的字符串。 我知道不同的平台有不同的文件名要求,所以我想知道是否有跨平台的方式来做到这一点? 编辑:在Windows平台上,您不能有问号'?' 在文件名中,而在Linux中
1回复

跨平台应用程序应允许获取文本文件的合理最大大小是多少?

跨平台应用程序可以允许获取文本文件的合理最大大小是多少? 我知道这是一个过于简化的问题,所以请允许我解释一下。 我的团队正在为客户实现批量加载接口,以将数据加载到我们的数据库中。 它将写出CSV文件,然后将该文件加载到适当的数据库(此时为Oracle或SQL Server)。 我们可