- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在一个网站上工作,该网站应该存储压缩存档文件以供下载,适用于不同平台(Mac 和 Windows)。
不幸的是,Mac 版本的下载使用“资源 fork ”,据我所知,这是 MacOS 文件系统的供应商特定功能,可将额外数据附加到文件标识符。以前,唯一的解决方案是在 Mac 上创建 Mac 存档(当时是 .sit
存档),然后手动上传两个版本。
我现在想让网站只接受 Windows 文件(一个可以在任何文件系统上解压缩的常规 .zip
),并自动生成一个带有资源分支的 Mac 存档。基本上,我所需要的只是某种在 Linux 服务器上生成存档文件的方法(以任何可以支持资源 fork 的合理通用格式;不确定 .sit
是否仍然是最佳选择)将产生在 Mac 上解压缩时的正确文件结构。由于文件系统不支持 fork ,存档可能必须在内存中组装并写入磁盘,而不是使用任何 native 压缩工具。
是否有一些软件可以做到这一点,或者至少有一些格式规范允许从头开始实现?
最佳答案
(1) 资源(和其他“命名”)分支是 macOS 中的遗留技术。虽然仍然受支持,但没有现代软件使用资源分支来做任何实质性的事情。我首先建议您查看您的要求,看看是否还有必要这样做。
(2) macOS 长期以来一直将 .zip
作为标准/内置存档格式。 .sit
是一个已经失宠的第三方压缩应用程序 (StuffIt)。
(3) 资源分支使用命名约定转换为非本地文件系统。例如,假设文件 Chart.jpg
有一个资源分支。当 macOS 将其写入不支持命名 fork 的文件系统时,它会创建两个文件:Chart.jpg
和 ._Chart.jpg
,后者包含资源 fork 和元数据。通常,.zip
文件只需要包含这两个文件,而 macOS 解压缩实用程序将使用两个分支重新组装原始文件。
我发现了一些带有资源分支的文件,并使用 macOS 的内置压缩命令对它们进行了压缩。这是存档的内容(unzip -v Archive.zip
):
Archive: /Users/james/Development/Documentation/Archive.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
1671317 Defl:N 1108973 34% 12-19-2009 12:09 b1b6083c svn-book.pdf
0 Stored 0 0% 01-30-2018 12:59 00000000 __MACOSX/
263 Defl:N 157 40% 12-19-2009 12:09 9802493b __MACOSX/._svn-book.pdf
265 Defl:N 204 23% 06-01-2007 23:49 88130a77 Python Documentation.webloc
592 Defl:N 180 70% 06-01-2007 23:49 f41cd5d1 __MACOSX/._Python Documentation.webloc
-------- ------- --- -------
1672437 1109514 34% 5 files
所以看起来特殊文件名被隔离在一个不可见的 __MACOSX
子文件夹中。您所要做的就是生成一个具有相同结构的 .zip
文件,然后它将在 macOS 系统上重新组装成一个带有资源分支的 native 文件。
关于linux - 在非 HFS 文件系统上使用资源分支处理文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48525242/
macOS HFS+ 支持透明文件系统级压缩。如何通过编程 API 为某些文件启用此压缩? (例如 Cocoa 或 C 接口(interface)) 我想达到ditto --hfsCompressio
我似乎无法获得有关是否可以在带有 Java 7 或 8 的 OS X 10.9 上使用 AclFileAttributeView 进行 HFS+ ACL 的任何信息。 我从 API docs 中提取的
我在一个网站上工作,该网站应该存储压缩存档文件以供下载,适用于不同平台(Mac 和 Windows)。 不幸的是,Mac 版本的下载使用“资源 fork ”,据我所知,这是 MacOS 文件系统的供应
如何从 HFS 模型输出中抓取轮廓?我正在尝试检测地板。任何帮助将不胜感激。 最佳答案 由于地板有特定的颜色范围,我们可以使用 cv2.inRange() 来设置颜色阈值。我们将图像转换为 HSV 格
这个问题在这里已经有了答案: What is the file system on iphone? (4 个答案) 关闭 9 年前。 有人知道 iOS 使用哪个文件系统吗?我用谷歌搜索但没有找到任何
苹果文档说: [...] current file systems such as HFS+ (used by Mac OS X) allow you to create filenames with
我正在尝试为 Mac OS X 上完整路径字符串的最大长度找到一个明确的答案(例如 Apple 开发人员文档)。我已经看到各种非权威网站声明它是无限的,4096 个字符, 或 1024 个字符,但无法
我正在研究 WebView 上的拖放功能。在html5环境下有没有类似hfspromise(cocoa环境)的拖放功能? 我期待类似的情况,如果我从必须使用剪贴板下载文件的位置传递 url,则该文件应
我正在阅读仍然使用 HFS 样式路径的旧文件,例如 VolumeName:Folder:File。 我需要将它们转换成 POSIX 路径。 我不喜欢进行字符串替换,因为它有点棘手,我也不想为此任务调用
根据JLS ,如果主机文件系统不支持 Unicode,则可以“破坏”包含非 ASCII 字符的包名称。例如,包 é 变成 @00e9,papierMâché 投影到文件时变成 papierM@00e2
我正在尝试在我的 Mac 应用程序中启动拖动。我希望拖动功能既提供 native UTI,又提供文件 promise ,以便用户可以将剪辑拖动到桌面。 根据 Apple 的 obsolete docu
我一直在使用 dd_rescue 恢复硬盘,它为我提供了由于硬件错误而无法复制的所有设备扇区的列表。 我想获取该列表,并编写一个工具来为我提供包含这些坏扇区的所有文件,以便我可以删除它们。我不确定可以
我知道资源分支在 Mac OS X 中已被弃用。 尚不清楚不太知名和很少使用的命名 fork 是否也被弃用。 HFS+ 实际上支持任何文件的任意数量的任意长度的 fork 。 (Mac 的命名 for
我正在为基于 Linux 的嵌入式系统开发,其中我有一个来自 hell 的构建过程,至少要生成一个完整的可闪存二进制文件——大量的依赖项、专有编译器等。为了使新的开发设置更容易开发人员和我们开发团队的
我正在寻找一种在不同文件系统上使用旧 ctime 创建文件的方法。在 Linux ext 上,这是通过使用 触摸/path/to/file debugfs -w -R 'set_inode_field
我在 HDFS 上工作,并在 hfs-site.xml 中将复制因子设置为 1,如下所示: dfs.replication 1 dfs.namenode
我一直遇到这个问题,我发现网络上没有相关信息,我希望得到一些帮助,因为过去几天我一直在研究这个问题,但没有任何线索。 为什么我的 java 应用程序突然停止为 APFS 工作?如果我将应用程序移动到非
我的来源是一个旧的外部硬盘驱动器,格式化为 HFS+(以前是来自运行 10.4.11 的服务器的数据),连接到运行 10.8.5 的 iMac,升级版本为 rsync 3.0.9。 目标是运行 rsy
背景 我试图使用 netatalk创建 Time Capsule使用 Raspberry Pi 3 ,按照教程here .部分版本信息: netatalk 3.1.12 macOS 10.14.5 树
在我们的大学项目中,进行了以下调用: sem_t *handle = sem_open("/6770::BitCompressedVector::allocate", 512, 420, 1); 正如
我是一名优秀的程序员,十分优秀!