从我的应用程序访问文档/收件箱中 IOS 上的文件
Posted
技术标签:
【中文标题】从我的应用程序访问文档/收件箱中 IOS 上的文件【英文标题】:Accessing a file on IOS in Documents/Inbox from my Application 【发布时间】:2012-10-25 22:40:40 【问题描述】:我整晚都在这,它让我发疯,我有一个应用程序,它由来自 Safari 的 openURL 调用调用。 Safari 向我发送 fileURL 并将文件复制到 Documents/Inbox,然后我想将该文件的内容读入字符串。然而,在尝试了多种定位/访问文件的方法之后......我的应用程序仍然说文件不存在。
所以我像这样从 Safari 收到了 fileURL ..
file://localhost/Users/plasma/Library/Application%20Support/iPhone%20Simulator/6.0/Applications/EE3A1801-98CF-4C7A-8ED1-639A81316B1C/Documents/Inbox/HereIsYourFile.txt
如果我在终端中浏览到此路径,我可以确认该路径是该位置并且文件存在。
macbook:Inbox plasma$ pwd /Users/plasma/Library/Application Support/iPhone Simulator/6.0/Applications/EE3A1801-98CF-4C7A-8ED1-639A81316B1C/Documents/Inbox macbook:Inbox plasma$ ls HereIsYourFile.txt
我将此路径放在一个名为 receivedURL 的字符串中,但尝试读取该文件只会给出一个空字符串和错误 260。
NSString *myFileContents = [NSString stringWithContentsOfFile:receivedURL
encoding:NSUTF8StringEncoding
error:&error];
这表明该文件不存在,所以我尝试证明它存在于我的应用中...
NSFileManager *filemgr;
filemgr = [NSFileManager defaultManager];
if ([filemgr fileExistsAtPath:receivedURL ] == YES)
NSLog (@"File exists");
else
NSLog (@"File not found");
它说它不存在!!!!我可以看到它..它在那里,为什么我的应用程序不能。我在文档页面 Here 上读到,此位置的文件应该对应用程序可见和可读。
任何有关访问此文件的帮助将不胜感激。
提前致谢
等离子
【问题讨论】:
【参考方案1】:如何从应用启动时提供的NSURL
创建receivedURL
?你应该这样做:
NSString *receivedURL = [url path];
确保receivedURL
开头没有file://。
另一种选择是使用NSURL
从文件中加载字符串:
NSString *myFileContents = [NSString stringWithContentsOfURL:url
encoding:NSUTF8StringEncoding
error:&error];
而不是将 URL 转换为文件路径。
【讨论】:
好吧,我们离得更近了,我用的是 .. NSString *receivedURL = [NSString stringWithFormat:@"%@",url];要将其转换为字符串,您的方法会删除“file://localhost”,并且现在可以进行测试以查看它是否存在,但是仍然无法读取文件,但现在错误为 261。我将拥有一个谷歌,看看我能不能解决它。 对其进行排序,必须在导入行将编码更改为 NSASCIIStringEncoding。但是感谢您的帮助,它使我能够读取文件! :)以上是关于从我的应用程序访问文档/收件箱中 IOS 上的文件的主要内容,如果未能解决你的问题,请参考以下文章
如何从我的 Gmail 收件箱中获取有时间限制的 IOS SDK 中的电子邮件?
将收到的 Facebook 消息(聊天 + 消息)转发到我的电子邮件收件箱,然后从我的 Facebook 收件箱中删除它们