通过 C/C++ 获取数据分叉大小,而不使用已弃用的 FSCatalogInfo 的 dataLogicalSize 字段
Get data fork size through C/C++ without using deprecated FSCatalogInfo's dataLogicalSize field
我正在努力在我的应用程序中删除基于 API 的已弃用 Carbon 的使用。如果不使用已弃用的 FSCatalogInfo 结构的 dataLogicalSize,我无法找到一种方法来计算 C++ 中的数据分叉大小。
我发现基于 NS 文件管理器的方法中可用的密钥 return 大小不考虑数据分叉大小。
-[NSFileManager attributesOfItemAtPath:error:]
将 return 包含键 NSFileSize
(以及其他键)的字典,其值等于您要查找的 dataLogicalSize
。不包括文件中存在的任何资源分叉的大小——我已经针对我周围有资源分叉的几个旧文件专门验证了这一点。 :)
实际上,您在现代 macOS 系统中遇到的文件几乎不会有资源分支。
我正在努力在我的应用程序中删除基于 API 的已弃用 Carbon 的使用。如果不使用已弃用的 FSCatalogInfo 结构的 dataLogicalSize,我无法找到一种方法来计算 C++ 中的数据分叉大小。 我发现基于 NS 文件管理器的方法中可用的密钥 return 大小不考虑数据分叉大小。
-[NSFileManager attributesOfItemAtPath:error:]
将 return 包含键 NSFileSize
(以及其他键)的字典,其值等于您要查找的 dataLogicalSize
。不包括文件中存在的任何资源分叉的大小——我已经针对我周围有资源分叉的几个旧文件专门验证了这一点。 :)
实际上,您在现代 macOS 系统中遇到的文件几乎不会有资源分支。