0

我正在使用这种方法

-(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...

4

2 回答 2

3
NSString *fileurl = @"file://Users/User....pdf";
NSString *path = [fileurl substringFromIndex:16];

您缺少正确的索引。这段代码不是pathbe /Users/User....pdf,而是....pdf。如果没有方法从 URL 中提取路径写入

NSString *path = [fileurl substringFromIndex:6];

就足够了。但是,既然我们有很棒的 NSURL 类,没有理由不写

NSURL *realURL = [NSURL URLWithString:fileurl];
NSString *path = [realURL path];
于 2012-09-26T04:46:46.250 回答
0

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

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

于 2012-09-26T04:49:30.037 回答