gpt4 book ai didi

ios - 用于下载或以其他方式获取的文件的 NSURL,用于打开带有 : What is its filepath? 的 iOS 应用程序

转载 作者:行者123 更新时间:2023-11-29 13:06:15 29 4
gpt4 key购买 nike

我发现到目前为止发送到 application:openURL:sourceApplication:annotation: 的路径是:

file://localhost/private/var/mobile/Applications/<GUID>/Documents/Inbox/file

要检查我即将执行的文件系统操作是否确实有可能成功(并且给我的 url 不是沙箱之外的位置),看起来我必须这样做:

NSString* hdurl = [[@"file://localhost/private" stringByAppendingString:NSHomeDirectory()] stringByAppendingString: @"/"];
NSString* path = url.absoluteString;
if ([path hasPrefix:hdurl]) {
// now ready to e.g. call fopen on: [path substringFromIndex:@"file://localhost".length]

现在,我似乎依稀记得(这可能是错误的)我曾见过使用 file:/// 样式的 URL。这显然会导致此代码失败。

我怎么知道它总是给我一个 file://localhost URL 前缀?

Apple 的 documentation on URLs奇怪的是缺少有关文件 URL 的部分。

最佳答案

指向本地文件系统上文件的 NSURL 称为“文件 URL”。要将 NSURL 转换为表示您使用的文件路径的 NSString:

NSString *filePath = [url path];

要检查 NSURL 是否表示文件 URL,请使用:

BOOL isFileURL = [url isFileURL];

请记住,如果向您的应用传递文件 URL,您将始终可以访问该文件。无需检查它是否以任何前缀开头。为什么 iOS 会向您传递一个您无权访问的文件?

关于ios - 用于下载或以其他方式获取的文件的 NSURL,用于打开带有 : What is its filepath? 的 iOS 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18555017/

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