问题标签 [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.

0 投票
2 回答
2367 浏览

macos - 如何在 OS X 中接收文件系统更改的通知?

在 Windows 中,我可以使用 FindNextChangeNotification API 来监视文件或文件夹的更改。例如,我可以查看文件夹并在添加或删除文件时收到通知。

OS X 上是否有类似的 API?

0 投票
3 回答
274 浏览

git - 当指向同一个文件的两个链接不同时,git 应该如何表现?

在使用 perl 代码库(在分支 maint-5.004 上)时,我观察到以下行为:

发生这种情况是因为这两个文件共享一个 inode(它们是同一个文件),但它们在 git 索引中是不同的。我的问题是:这是怎么发生的?如果 git 跟踪到同一个文件的 2 个链接,当只有其中一个被修改时,是否应该期望 git 将其标记为错误?这是 git 错误还是用户错误?

更新:

看来问题不在于 git,而与文件系统(hfs+)的区分大小写有关。

我认为也许 OS X 需要重新考虑作为一个有用的开发平台,因为这种行为是荒谬的。

0 投票
1 回答
1124 浏览

git - Git 在 Mac OS X 上更改文件

我刚刚克隆了一个包含一些 linux 内核模块的旧存储库(不要问)。如果我在 linux 机器上克隆,一切都很好。然而,在我的 Mac 上,有人(可能是 Mac OS X)对模块进行了二进制更改。我已经禁用了 autocrlf。

这是git diff -p --stat 直接克隆后的输出:

Agit reset --hard也不行。不过,确实会发生一些奇怪的事情:每次我进行重置时,git diff切换位置右侧的大小和文件名中的一些大写字母都会发生变化。我在 Mac 上确实有一个不区分大小写的文件系统,这可能是造成这种情况的原因吗?我该如何解决这个问题(如果可能,无需重新格式化 Mac)

0 投票
1 回答
319 浏览

cocoa - “writeToFile:atomically:”在具有特定 ACL 的文件上失败

如果我有一个 ACL 规则为 的可写文件deny delete,则任何[plistableObject writeFoFile:undeletableFile atomically:YES]调用都会返回NO,而非原子写入会成功。

我知道,原子写入意味着写入一个临时文件,并且——如果写入成功——最终重命名。不过,它的这种特殊含义感觉很奇怪
所以我想知道,这是因为...

  1. HFS+ 中缺少直接的“重命名”,
  2. 实施中的缺陷-[NS(Array|Dictionary|Data|String) writeToFile:atomically:]
  3. Mac OS X 中 ACL 实现的缺陷?

提前致谢

丹尼尔


原始问题:
前几天我在从备份中恢复的 Mac 上发现了这种奇怪的行为:
大多数应用程序都无法保留它们的首选项——尤其是 Mail.app,它发出错误消息警告,表明它无法写入~/Library/Preferences.

深入挖掘,我发现——不知何故——大多数 plist 都有一个带有指令的 ACL group:everyone deny delete;放弃这条规则挽救了一天。

我怀疑NSArray|NSDictionary|NSWhatHaveYou'writeToFile:atomically:应对这种行为负责*,而且——果然——我写的测试工具只有在NO作为第二个参数传递时才会成功,如果文件存在并且有这样的 ACL 就位......

(*“负责”我只指非写作部分;ACL 情况完全是另外一回事)

所以我想知道:

这是错误还是功能?

虽然 - 从技术上讲 - 此方法写入文件并在完成后重命名它,但从用户的角度来看,它并没有删除任何内容......

如果是错误:
应该针对 NSArray 和朋友提交还是针对 ACL 的实现提交?

任何想法都非常感谢!

干杯

丹尼尔

0 投票
1 回答
397 浏览

osx-snow-leopard - 在 Mac VFS/HFS+ 中是否可以进行原子重命名?

在 Mac OS X 中支持 ACL,有一种方法可以将文件声明为可写但不可删除。

这给原子写入带来了问题,因为VFS 中的当前实现是预先存在的目标。如果您有一个现有的文件,您对其具有写入权限,则可能无法自动写入: 只需附加一个 ACL 声明和原子写入(如由各种 Cocoa API 实现 - 例如NSArray's)将失败,而非原子写入将很高兴成功。renamedelete
deny deletewriteToFile:atomically:

由于我对低级 C 代码的理解相当有限:
只有轻微(插入您最喜欢的“轻微”定义)头痛的替代实现是否可行?

谢谢

丹尼尔

0 投票
1 回答
2968 浏览

java - Eclipse 项目未在 Mac OS X 上构建:'A resource exists with a different case' 错误

我有一些代码,我继承了以前构建在 Linux 系统上的代码。我尝试在 Mac OS X Snow Leopard 上构建它。我的分区是 Mac OS Extended (journaled)。我知道这是一个不区分大小写的文件系统,错误来自 2 个名称相同但大小写不同的 java 类。所以这个错误是“正常的”。

我试图找到一种解决方法,因此我使用文件系统分区 Mac OS X Extended(日志式,区分大小写)构建了一个磁盘映像。在该卷上,我可以创建两个名称相同但大小写不同的文件。

我在上面复制了我的项目,但错误仍然存​​在。然后我在该卷上创建了一个新工作区并将项目导入该工作区,但错误仍然存​​在。我认为该设置将存储在工作区级别。

Eclipse 在哪里存储“区分大小写”/“不区分大小写”标志,或者尽管工作区和项目位于区分大小写的卷上,但为什么 Eclipse 仍会生成此错误。有没有一种方法可以在区分大小写的分区上的 Mac OS X 上运行?

我知道我可以重命名这些类,但是代码有点时髦,在这种情况下它不是一个简单的重构。

谢谢

0 投票
2 回答
782 浏览

objective-c - 如何打印 HFS 卷标头

任何人请给出如何打印 HFS+ 磁盘卷标头的代码片段。

0 投票
0 回答
182 浏览

macos - 如何打印 HFS 期刊信息

我正在尝试打印 HFS 期刊信息。我能够成功打印期刊标题。但无法打印 block_list(journal Buffer)。

任何帮助,将不胜感激 .......

0 投票
1 回答
258 浏览

php - 在 OSX 10.6.7 中创建的 php 文件的额外属性

我使用 php 脚本在本地 OSX 10.6.7 上使用 MAMP 生成 LaTeX 文件 (report.tex)(文件系统为 HFS+)。然后我使用exec()LaTex 构建文件。.tex 在文件系统上很好地创建,但它不会被查找器识别为 .tex 文件,也不会被 LaTex 识别。我已经检查过问题不在于文件本身,而在于 php 脚本创建它的方式。

事实上,如果我使用文本编辑器创建 report.tex,系统会正确处理该文件,并且 LaTex 不会出现问题。如果我运行 php 脚本,它会在同一个目录中创建另一个具有相同名称(!)的文件。在内部,这些文件完全相同,用十六进制编辑器检查。如果我ls -ls@在目录中运行,我会获得

最后一个文件是 php 生成的。如果我xattr -p com.apple.FinderInfo在第一个文件上运行,我会得到

如果我跑步xattr -p com.apple.TextEncoding

一旦指定了文本编辑器,我就可以毫无问题地打开第二个文件(该文件未被识别为 .tex 但第一个文件是!)。然后该文件在 TextWrangler 中显示良好,但 tex 的语法着色未激活(它为第一个激活,并且它们的内容按字节顺序相同)。

我很确定这些问题与这个额外的属性有关。我的问题是:有没有办法使用 PHP 或 OSX 来实现正确的行为,即 php 创建的文件被识别为普通的 .tex 文件,例如覆盖第一个文件(当然可以处理由乳胶)?

问候,

汤姆

0 投票
1 回答
551 浏览

windows - Windows 中的 HFS+ 读取访问权限

我需要在 HFS+ (Mac) 分区驱动器上读取和写入一些文件,并且想知道是否已经制作了任何 API,googleing 没有提出任何建议。如果没有,如何从头开始解决这个问题。