问题标签 [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.
macos - 如何在 OS X 中接收文件系统更改的通知?
在 Windows 中,我可以使用 FindNextChangeNotification API 来监视文件或文件夹的更改。例如,我可以查看文件夹并在添加或删除文件时收到通知。
OS X 上是否有类似的 API?
git - 当指向同一个文件的两个链接不同时,git 应该如何表现?
在使用 perl 代码库(在分支 maint-5.004 上)时,我观察到以下行为:
发生这种情况是因为这两个文件共享一个 inode(它们是同一个文件),但它们在 git 索引中是不同的。我的问题是:这是怎么发生的?如果 git 跟踪到同一个文件的 2 个链接,当只有其中一个被修改时,是否应该期望 git 将其标记为错误?这是 git 错误还是用户错误?
更新:
看来问题不在于 git,而与文件系统(hfs+)的区分大小写有关。
我认为也许 OS X 需要重新考虑作为一个有用的开发平台,因为这种行为是荒谬的。
git - Git 在 Mac OS X 上更改文件
我刚刚克隆了一个包含一些 linux 内核模块的旧存储库(不要问)。如果我在 linux 机器上克隆,一切都很好。然而,在我的 Mac 上,有人(可能是 Mac OS X)对模块进行了二进制更改。我已经禁用了 autocrlf。
这是git diff -p --stat
直接克隆后的输出:
Agit reset --hard
也不行。不过,确实会发生一些奇怪的事情:每次我进行重置时,git diff
切换位置右侧的大小和文件名中的一些大写字母都会发生变化。我在 Mac 上确实有一个不区分大小写的文件系统,这可能是造成这种情况的原因吗?我该如何解决这个问题(如果可能,无需重新格式化 Mac)
cocoa - “writeToFile:atomically:”在具有特定 ACL 的文件上失败
如果我有一个 ACL 规则为 的可写文件deny delete
,则任何[plistableObject writeFoFile:undeletableFile atomically:YES]
调用都会返回NO
,而非原子写入会成功。
我知道,原子写入意味着写入一个临时文件,并且——如果写入成功——最终重命名。不过,它的这种特殊含义感觉很奇怪。
所以我想知道,这是因为...
- HFS+ 中缺少直接的“重命名”,
- 实施中的缺陷
-[NS(Array|Dictionary|Data|String) writeToFile:atomically:]
或 - 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 的实现提交?
任何想法都非常感谢!
干杯
丹尼尔
osx-snow-leopard - 在 Mac VFS/HFS+ 中是否可以进行原子重命名?
在 Mac OS X 中支持 ACL,有一种方法可以将文件声明为可写但不可删除。
这给原子写入带来了问题,因为VFS 中的当前实现是预先存在的目标。如果您有一个现有的文件,您对其具有写入权限,则可能无法自动写入:
只需附加一个 ACL 声明和原子写入(如由各种 Cocoa API 实现 - 例如NSArray's)将失败,而非原子写入将很高兴成功。rename
delete
deny delete
writeToFile:atomically:
由于我对低级 C 代码的理解相当有限:
只有轻微(插入您最喜欢的“轻微”定义)头痛的替代实现是否可行?
谢谢
丹尼尔
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 上运行?
我知道我可以重命名这些类,但是代码有点时髦,在这种情况下它不是一个简单的重构。
谢谢
objective-c - 如何打印 HFS 卷标头
任何人请给出如何打印 HFS+ 磁盘卷标头的代码片段。
macos - 如何打印 HFS 期刊信息
我正在尝试打印 HFS 期刊信息。我能够成功打印期刊标题。但无法打印 block_list(journal Buffer)。
任何帮助,将不胜感激 .......
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 文件,例如覆盖第一个文件(当然可以处理由乳胶)?
问候,
汤姆
windows - Windows 中的 HFS+ 读取访问权限
我需要在 HFS+ (Mac) 分区驱动器上读取和写入一些文件,并且想知道是否已经制作了任何 API,googleing 没有提出任何建议。如果没有,如何从头开始解决这个问题。