- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在将公司的一款应用程序迁移到 64 位环境,因此无法再访问 FSSpec 函数。
我们的文件格式中有一些数据结构,它们将旧 FSSpec 格式中的 vRefNum 和 dirID 保存到文件中...过去我们能够使用 Carbon 例程,从 FSSpec 到 FSRef,最后到 CFURL ,但 FSSpec 例程在 64 位中根本不可用,甚至 FSRef 例程从 10.9 起也已弃用。
在内部,我们使用 CFURL/NSURL,但仍然希望支持与这些旧文件格式之间的转换。有什么方法可以使用未弃用的(或至少 64 位友好的)例程在 vRefNum 和 dirID 之间往返于 CFURL 之间吗?
非常感谢。
最佳答案
Apple 不支持此功能,但您可以使用 volfs 文件系统来执行此操作,这是 Carbon 内部所做的。请参阅 Apple 提供的以下文档:
http://developer.apple.com/legacy/library/qa/qa2001/qa1113.html
这是一个根据卷 ID 和目录 ID 创建 CFURLRef 的函数:
CFURLRef CreateURLFromVolumeIDandDirectoryID(dev_t volumeID, SInt32 directoryID)
{
CFStringRef thePath = CFStringCreateWithFormat(kCFAllocatorDefault, NULL,
CFSTR("/.vol/%d/%d"), volumeID, (int) directoryID);
CFURLRef theURL = CFURLCreateWithFileSystemPath(kCFAllocatorDefault, thePath,
kCFURLPOSIXPathStyle, false);
CFRelease(thePath);
return theURL;
}
要使用 volfs,您还需要将卷引用号转换为卷 ID。这是一种方法:
dev_t ConvertVolumeRefNumtoVolumeID(FSVolumeRefNum refNum)
{
FSRef root;
OSErr error = FSGetVolumeInfo(refNum, 0, NULL, kFSVolInfoNone, NULL, NULL, &root);
if(error != noErr)
return 0;
UInt8 path[500];
OSStatus status = FSRefMakePath(&root, path, 500);
if(status != noErr)
return 0;
struct stat volStats;
int err = stat((const char*)path, &volStats);
if(err != 0)
return 0;
return volStats.st_dev;
}
根据链接的文档,应用程序永远不应该这样做,并且这可能会在任何 future 版本的 OS X 中停止工作。但是您问...
此外,在卸载然后重新安装卷时,不能保证卷引用号保持不变,因此如果将它们写入磁盘,则会遇到另一个问题。
关于macos - 将 vRef 和 dirID(从 FSSpec)转换为 CFURL/NSURL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25067954/
我正在尝试使用 Pandas read_csv方法。一切正常。我保存了所有内容并在第二天开始处理它,但随后我不断收到此错误: ImportError: Pandas requires version
如何从 FSSpec 获取 NSString(Unix 样式路径) 问候,达纳。 最佳答案 为 FSSpec 创建 FSRef。 Create a CFURL for the FSRef . 使用 t
从 django REST API View 中,我尝试访问存储在 azure 存储 blob 中的文件。我想打开它而不将其下载到文件中,如图here 。读取权限就足够了。 为此,我这样勾勒出我的观点
从 django REST API View 中,我尝试访问存储在 azure 存储 blob 中的文件。我想打开它而不将其下载到文件中,如图here 。读取权限就足够了。 为此,我这样勾勒出我的观点
我有一个几千兆字节的 CSV 文件驻留在 Azure Data Lake 中。使用 Dask,我可以在一分钟内读取这个文件,如下所示: >>> import dask.dataframe as dd
我已经注册了一个 ADLS 数据存储。 datastore = mlclient.datastores.get(ds_name) from azureml.fsspec import AzureMac
我使用 Python 3.7.13 版并为 MLOps 项目创建虚拟环境 (venv)。 这个venv中安装了兼容Python== 3.7.13的dvc包(=2.10.2)。 (venv) (base
我已经注册了一个 ADLS 数据存储。 datastore = mlclient.datastores.get(ds_name) from azureml.fsspec import AzureMac
我使用 Python 3.7.13 版并为 MLOps 项目创建虚拟环境 (venv)。 这个venv中安装了兼容Python== 3.7.13的dvc包(=2.10.2)。 (venv) (base
我正在将公司的一款应用程序迁移到 64 位环境,因此无法再访问 FSSpec 函数。 我们的文件格式中有一些数据结构,它们将旧 FSSpec 格式中的 vRefNum 和 dirID 保存到文件中..
我是一名优秀的程序员,十分优秀!