|
|
1
1
我不是说没办法这么做,但@jonathan所说的不是。 该API用于跟踪文件的创建、更改和销毁。值得注意的是,这个工具被Spotlight等工具用来监视文件系统上新的、有趣的文件的活动。 但明智的是,阅读并不是它所追踪的事件之一。 即使跟踪了读取,它仍然是错误的机制,因为它是事后通知系统,与调用本身不一致。 我真的很怀疑你想要什么可能是你描述它的方式。 使用访问控制列表,可以限制用户级别的访问(Fred可以读取文件,Bob不能)。这是文件本身的设置。但是没有允许bobs app1读取文件的机制,而bobs app2不能,因为实际上没有正式的“应用程序标识”机制可以执行命令之外的命令,或者程序“说”它的名称(如果有足够的动机,这两者都可以被欺骗)。 然而,请随意爬行达尔文的资料来源——毫无疑问,答案就藏在靠近公开电话的某个地方。 编辑,关于评论。 你想做什么?总体背景是什么? 另一件你可能想尝试的事情是使用保险丝。 fuse是一个让您拥有“用户空间文件系统”的实用程序。人们使用fuse的目的很多,比如读取NTFS卷,或者通过ssh安装远程系统。 他们有一个简单的例子,给你一个框架,你可以为你的目的填充它。 对于大多数用例,您只需遵从系统即可。但是,对于open,您将添加逻辑。然后您可以将fuse实用程序指向一个目录,并“挂载它”。然后该目录下的所有文件都可以使用您的新行为。 我仍然不确定你将如何通过名字识别应用程序,但如果这不是一个真正的“安全”问题,只是为了本地控制,我想你可以想出一些办法。活动监视器有应用程序名称,所以它们必须是可用的,fuse将在进程空间内运行(我认为),而不是通过一些外部机制运行。 尽管如此,我认为fuse是你最好的选择,但如果你想在用户没有准备的情况下(比如不安装fuse)对“任何文件”执行此操作,可能是不合适的。如果您想做“任何文件”,您的fuse系统需要安装在根目录下,然后您只需拥有文件系统的完整“克隆”,这些文件来自正常根目录下的“未保护”,而来自新fuse根目录下的文件将受到保护。因此,如果有人不想使用Fuse系统,那么可以通过实际的文件位置很容易地获得真实的文件。 |
|
|
2
0
阿米特·辛格的著作应该非常有用。他 explored 几年前提供文件系统事件并提供 sample tool 这样可以截获fs事件。它是开源的! 如果我正确地记住他的结论,他们不是一个官方的API,但是你可以使用苹果的工具来实现你想要的。 |
|
|
3
0
命令行工具fs-util允许您监视文件系统活动,包括读取。 |
|
|
Jace Johnson · 我应该使用多个地图功能还是只使用一个 1 年前 |
|
|
Pop Bob · Api返回UnsupportedMediaType 1 年前 |
|
|
Mr FoX · 如何从mysqli输出json数组,而[重复] 1 年前 |