【问题标题】:Cocoa error 260, filepath structureCocoa 错误 260,文件路径结构
【发布时间】:2012-09-25 21:08:13
【问题描述】:

我正在使用这种方法

-(BOOL)application:(UIApplication *)application handleOpenURL:(NSURL *)url

当我在我的应用程序中打开一个文件时,它会给出一个特定的文件 url。该网址看起来像

file://localhost/Users/User/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/229C1D14-28D4-4B82-8CBB-8B9BC472E7A3/Documents/Inbox/Trinity_2016-4.pdf

我正在尝试将其从文件 url 转换为路径,以便我可以将它与开源库 SCRFTPRequest 一起使用。

问题是当我尝试指向一个文件时遇到可可错误 260,我只是想确保我设置正确。

NSFileReadNoSuchFileError = 260,                        // Read error (no such file)

这是示例代码

SCRFTPRequest *ftpRequest = [[SCRFTPRequest alloc] initWithURL:[NSURL URLWithString:@"ftp://192.168.1.101/"] 
toUploadFile:[[NSBundle mainBundle] pathForResource:@"Info" ofType:@"plist"]];

这就是我改变它的方式

NSString *fileurl = @"file://Users/User....pdf";
NSString *path = [fileurl substringFromIndex:16];
SCRFTPRequest *ftpRequest = [[SCRFTPRequest alloc] initWithURL:[NSURL URLWithString:@"ftp://192.168.1.101/"] 
toUploadFile:path];

此代码的格式是否正确?正如所写,它使用 substringFromIndex 将文件 url 从 file://localhost/Users/User... 更改为 /Users/User...

【问题讨论】:

  • 我不知道 SCRFTPRequest 是做什么的,但如果它需要一个 NSString,它可能需要一个路径,而不是文件 url。
  • SCRFTPRequest 那么对于路径,我是否只需删除'file://'?
  • 我猜它需要一个路径,因为示例代码有效地传递了一个路径。你甚至尝试过吗?如果它是一个开源库,你为什么要问呢?去看看代码对那个参数做了什么。如果您不理解代码中的某些内容,因为它以特定方式执行某些操作,请提出与理解该特定内容相关的问题。
  • 所以,我尝试使用 stringFromIndex 使字符串看起来像 /Users/User...file.pdf ,但我仍然收到错误 260。我只是在询问如何格式化路径。 NSBundle 示例在路径周围有箭头,例如 /User...file.pdf>。我也试过了,但没有运气。
  • 我不确定你在说什么。 stringFromIndex 是什么? “路径周围的箭头”示例在哪里?您实际使用的是什么路径?正常写入的路径/Users/User...file.pdf与OsX机器上的真实文件不对应,所以错误是正确的,因为文件不存在。您要上传的文件的实际路径是什么?

标签: iphone xcode cocoa file ftp


【解决方案1】:
NSString *fileurl = @"file://Users/User....pdf";
NSString *path = [fileurl substringFromIndex:16];

您缺少正确的索引。此代码不会使path 成为/Users/User....pdf,而是....pdf。如果没有办法从 URL 中提取路径写入

NSString *path = [fileurl substringFromIndex:6];

就足够了。但是,因为我们有很棒的 NSURL 类,所以 没有借口 不写了

NSURL *realURL = [NSURL URLWithString:fileurl];
NSString *path = [realURL path];

【讨论】:

  • 只有最后一个[aURL path] 应该用于获取NSURL 的路径
  • @uchuugaka 我还有什么要说的吗?
  • 听起来你在说 substringFromIndex: 就足够了,但它不会。
  • @uchuugaka "如果没有从 URL 中提取路径的方法" - 但是有,我会在之后立即展示。无需剪头发。
【解决方案2】:

您可能会收到“没有这样的文件”错误,因为您传递的文件路径与实际文件不对应。

尝试NSLogging 您正在传递的堆路径并验证该文件是否确实存在于文件系统中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-05
    • 2015-06-21
    • 2018-10-16
    • 1970-01-01
    相关资源
    最近更新 更多