gpt4 book ai didi

objective-c - 来自 FSCopyURLForVolume 的完整 URL

转载 作者:行者123 更新时间:2023-12-03 17:42:16 27 4
gpt4 key购买 nike

我在使用 FSCopyURLForVolume 获取文件的完整 URL 时遇到问题。我正在使用此问题 Determine AFP share from a file URL 中的代码但它没有给我完整的网址。例如:

路径如下:/Volume/server/html/index.html

我得到的只是基本安装的 url:nfs://real_server_name/vol

叶目录和文件名被保留,完整路径在文件信息中可用,因此必须有一种方法来获取此信息。

编辑:

经过更多挖掘后,我似乎想使用 kFSCatInfoParentDirIDkFSCatInfoNodeID 来获取父级和节点(文件)id,但我不知道如何转向这变成了有用的东西。

最佳答案

因为 FSPathMakeRef、FSGetCatalogInfo 和 FSCopyURLForVolume 在 Mac OS X 10.8 中已弃用,所以我对用于在 Mac OS X 安装的卷上获取 UNC 网络路径的代码进行了现代化改造。

    NSError *error=nil; //Error 
NSURL *volumePath=nil; //result of UNC network mounting path

NSString* testPath =@"/Volumes/SCAMBIO/testreport.exe"; //File path to test

NSURL *testUrl = [NSURL fileURLWithPath:testPath]; //Create a NSURL from file path
NSString* mountPath = [testPath stringByDeletingLastPathComponent]; //Get only mounted volume part i.e. /Volumes/SCAMBIO
NSString* pathComponents = [testPath substringFromIndex:[mountPath length]]; //Get the rest of the path starting after the mounted path i.e. /testereport.exe
[testUrl getResourceValue:&volumePath forKey:NSURLVolumeURLForRemountingKey error:&error]; //Get real UNC network mounted path i.e. smb://....

NSLog(@"Path: %@%@", volumePath,pathComponents); //Write result to debug console

就我而言,结果是,路径:smb://FRANCESCO@192.168.69.44/SCAMBIO/testreport.exe

您需要指定您的网络映射卷。

再见。

关于objective-c - 来自 FSCopyURLForVolume 的完整 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9642856/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com