问题标签 [hfs+]
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.
java - 跟踪 Windows 和 Mac 中的文件系统更改
我在 Windows 和 Mac OS 上都有一个用 Java 编写的基于文件系统的应用程序。
我的要求是跟踪对目录下的文件/文件夹所做的更改。要跟踪的操作是正常的文件级操作,如 CRUD 操作。当我的应用程序运行时,我可以从 java nio 运行监视服务并跟踪更改(尽管检测重命名仍然是监视服务中的问题)。
当我必须在应用程序未运行时检测更改时,我的问题就出现了。我读过文件备份软件是通过 Windows NTFS 的更改日志功能来完成的。
我的问题如下
(a) 更改日志 API 在 . NET 托管的 c# 代码(甚至在 Java 中)还是只能通过 c++ 获得,如示例中所示?(b) 在 HFS plus (mac os) 中是否提供更改日志或同等功能?如果是,是否有可用的 API(任何语言)?(c) 有没有更好的方法来跟踪应用程序未运行时文件系统中所做的更改?
干杯,
索拉夫
macos - OS X 以编程方式枚举给定文件夹的所有元数据键
对于 OS X 上 HFS+ 卷上的给定文件夹,我如何以编程方式枚举给定文件夹的所有元数据键(不仅仅是聚光灯/查找器使用的键,可以通过xattr
或访问mdls
)?在 Obj-C/Swift 或 Applescript/bash 中?我找不到任何相关信息。谢谢!
c - 读取尚未保存到磁盘的文件
我的情况如下:
我使用一个进程来编写新文件,并在完成后关闭它。另一个进程在第一个进程完成后立即打开此文件进行读取。不用说,两个进程都驻留在同一个客户端上。
我的工作平台是使用 HFS+ 文件系统的 OS X。
根据关闭手册页:
成功关闭并不能保证数据已成功保存到磁盘,因为内核延迟写入。文件系统在流关闭时刷新缓冲区并不常见。如果您需要确保数据是物理存储的,请使用 fsync(2)。(此时这将取决于磁盘硬件。)
这意味着文件不一定会保存到磁盘。但是,我只关心文件关闭后读取文件时的一致性,并且我会避免使用 fsync,因为它非常耗时。
是否保证第二个进程从缓存中读取更新的数据,即使它还没有刷新到磁盘?
macos - 使用 HFS+ 命名分叉的 API 是什么?
我知道资源叉在 Mac OS X 中已被弃用。
目前尚不清楚不太知名和很少使用的命名分叉是否也被弃用。HFS+ 实际上支持任何文件的任意数量的任意长度的分叉。(Mac 的命名分支在概念上类似于 Windows 的备用数据流或“ADS”。)
是否已弃用仍有理由学习创建、枚举、删除和以其他方式操作文件分叉。
然而,我似乎找不到任何关于使用分叉的 API 的信息。
我所能找到的只是从终端或者其他接受文件名或路径的地方,您可以使用语法访问资源分支,<filename>/..namedfork/rsrc
直到最近还可以访问<filename>/rsrc
. 我尝试用rsrc
其他名称替换,但我在终端中尝试的所有命令都失败了。
我在哪里可以找到有关 API 的旧文档或非官方文档,以便以编程方式在 OS X 中使用命名分叉?
顺便说一句,当谷歌搜索这个话题时,互联网上似乎存在一个普遍的误解。随机下注者说命名叉是建立在命名文件属性上的。事实并非如此。命名文件属性是一个相当新的 OS X 功能。命名分叉早于 OS X。事实上,命名文件属性似乎很可能在幕后使用命名分叉。
无论如何,请不要提交有关命名文件属性的答案。我正在专门寻找有关任意命名分叉的信息。
在 12.7.4 节中有一些关于命名分叉的描述。“属性文件”
c - 在 OS X 上打开设备文件
我正在构建一个文件恢复工具,但遇到了一个我无法弄清楚的奇怪问题。
以下代码没有失败,但 fstat 报告的结果文件大小为 0 字节。
(我将代码指向另一个文件进行测试,它正确返回了大小。)
但是,如果我在终端中键入以下内容,它会毫无问题地显示驱动器的内容:
我以 root 身份运行,以避免在测试时出现任何权限问题。该驱动器是一个未安装的外部 HFS 卷。
windows - Windows 上 ubuntu 上 bash 上的外部硬盘
如何通过 bash-on-Ubuntu-on-windows 访问外部硬盘驱动器。它似乎没有出现在或中/media
,这似乎是人们说在 Ubuntu 系统中寻找它们的常见位置。/mnt
/dev
注意:硬盘是 HFS+ 格式的:我使用 Paragon 的 HFS+ for windows 并且已经完成了apt-get install hfsprogs
我认为应该允许 Linux 部分读取 HFS+ 格式的操作。我也尝试过使用普通的 U 盘,但似乎都没有出现在任何地方。
该驱动器确实出现在/cygdrive
cygwin 中,但是当我在 bash 中导航到 cygdrive 时,它没有出现。显然它没有正确安装在那里,而是 bash 看不到的某种形式的符号链接。
我不确定这是 Linux 还是 Windows 问题,但微软似乎没有任何关于它的信息,尽管我意识到这对他们来说还处于早期阶段。
linux - Linux下如何读取HFS+扩展属性
我已经在 Linux 下成功挂载了 HFS+ 卷,但是当我尝试读取文件上的 HFS+ 扩展安全属性时,我收到错误“不支持操作”:
为什么会发生这种情况?我知道文件“file.db”完全具有属性“com.apple.system.cprotect”。
linux - 在非 HFS 文件系统上使用资源分支处理档案
我正在一个网站上工作,该网站应该存储压缩存档文件以供下载,适用于不同的平台(Mac 和 Windows)。
不幸的是,下载的 Mac 版本使用“资源分叉”,据我了解,这是 MacOS 文件系统的供应商特定功能,可将额外数据附加到文件标识符。以前,唯一的解决方案是在 Mac 上创建 Mac 存档(当时.sit
特别是存档),然后手动上传两个版本。
我现在想让网站只接受 Windows 文件(.zip
可以在任何文件系统上解压缩的常规文件),并自动生成带有资源分支的 Mac 存档。基本上,我需要的只是某种在 Linux 服务器上生成存档文件的方法(以任何可以支持资源分叉的合理通用格式;不确定是否.sit
仍然是最佳选择),在 Mac 上解压缩时会产生正确的文件结构。由于文件系统不支持分叉,存档可能必须在内存中组装并写入磁盘,而不是使用任何本机压缩工具。
是否有一些软件可以做到这一点,或者至少有一些格式规范可以从头开始实现它?
cocoa - 如何以编程方式在 HFS 上压缩文件?
macOS HFS+ 支持透明的文件系统级压缩。如何通过编程 API 为某些文件启用此压缩?(例如 Cocoa 或 C 接口)
我想达到的效果ditto --hfsCompression src dst
,但没有炮轰。
澄清一下:我在问如何压缩未压缩的文件。我对阅读或保留现有的 HFS 压缩状态不感兴趣。