【问题标题】:accessing file saved to device writeToFile访问保存到设备 writeToFile 的文件
【发布时间】:2014-04-15 12:52:09
【问题描述】:

我将 UITextView 文本保存到文件 test.txt 中

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *path = [documentsDirectory stringByAppendingPathComponent:@"test.txt"];
[self.textBox.text writeToFile:path atomically:YES];
NSLog(path);

这在模拟器中的 mac 上运行良好,因为它提供了一个库,我只需单击它即可打开 txt 文件。但是,在 iPad 上,我不知道该怎么做。

/var/mobile/Applications/10AC319A-D567-4DC6-B7C9-E53E71B82B89/Documents/test.txt

是我存储的地方。我猜是无法通过 ipad 访问文档文件夹?

如何在应用程序中提取此文档?或者将其保存在应用程序中,以便应用程序的用户可以访问它?

除了保存按钮之外,我还有另一个名为 Read 的按钮应该以某种方式拉出 test.txt

我已经开始了

 -(IBAction)readAssignment:(id)sender{

    NSString* GetApplicationDocumentsDirectory(); {
        static NSString* documentsDirectory = nil;
        if (documentsDirectory == nil) {
            documentsDirectory = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:@"test.txt"];}

        self.textBox.text= [documentsDirectory stringByAppendingPathComponent:@"text.txt"];
    }

}




self.textBox.text= [documentsDirectory stringByAppendingPathComponent:@"text.txt"];

返回文件路径,但我如何获取它以显示保存到 textview 中的 text.txt 文本?

但我知道这行不通/不正确。

【问题讨论】:

  • 在设备上运行时究竟出了什么问题?
  • @JoshCaswell 当我在 Mac 上运行时,它会创建一个文件夹 /Users/vchang/Library/Application Support/iPhone Simulator/Documents/test.txt 我可以访问它。但是,当我在设备上运行它时,我不确定在哪里可以访问创建的文档 test.txt。我希望用户以后能够调出保存的文档
  • 您是指在应用程序之外?每个 iOS 应用程序都有自己的 Documents 目录;其他应用无法访问。
  • 嗯,我如何访问该目录或在应用程序中提取 test.txt?我知道它可以保存它,但我不确定如何在应用程序中将其拉起...我创建了一个应该执行此操作的新按钮,我将添加该部分,但我知道我错了。
  • 只需在您写入的相同路径中读取它:[[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask) objectAtIndex:0] stringByAppendingPathComponent:@"test.txt"];

标签: ios writetofile nsdocumentdirectory


【解决方案1】:

如果您要在应用程序之外获取文件,可以使用以下解决方案。

如果您将文件存储在documents directory,您可以通过iTunes 访问该文件。

为此,您需要在应用程序的info.plist 中启用UIFileSharingEnabled

然后连接到 iTunes -> 同步应用程序 -> 在 iTunes 中点击你的应用程序,你可以看到文件

【讨论】:

  • 谢谢@midhun MP!但是,我正在寻找一种在应用程序中而不是在 iTunes 上阅读它的方法。但我会记住这一点,以备将来参考。
【解决方案2】:

使用NSStringstringWithContentsOfFile 方法,您可以从文件中读回文本。

NSString *documentsDirectory = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"test.txt"];
NSError *error = nil;
[self.textBox.text writeToFile:filePath atomically:YES encoding:NSUTF8StringEncoding error:&error];
NSString *myText = [NSString stringWithContentsOfFile:filePath encoding:NSUTF8StringEncoding error:&error];
NSLog(@"myText: %@", myText);

【讨论】:

  • 谢谢,这就是我要找的!我必须更改一些内容才能将保存的文本重新打印到我的文本框,但总的来说这有效
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多