【问题标题】:NSDocumentDirectory files disappear in iosNSDocumentDirectory 文件在 ios 中消失
【发布时间】:2015-10-05 18:35:08
【问题描述】:

我想在我的文件夹中保存一个 mp4 视频,但是当我再次打开该应用程序时,该文件为零。但是当我保存文件时,我可以打开它,所以它似乎从文件夹中消失了。

保存:

NSData *videoData = [NSData dataWithContentsOfURL:exportUrl];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *tempPath = [documentsDirectory stringByAppendingFormat:@"/%@",videoName];

self.path_video_to_save = tempPath;

BOOL success = [videoData writeToFile:tempPath atomically:YES];

if (success) 
    NSLog(@"saved");
else
    NSLog(@"not saved!!!!!!!!!!!!!!");

我得到了真正的成功,所以没关系,我可以很好地播放我的视频。

NSString *path_video = [dict objectForKey:@"path"]; //dictionary where I save the path, the same before and after closing app

NSData *videoData = [NSData dataWithContentsOfURL:[NSURL fileURLWithPath:path_video]];

if (videoData == nil){
    NSLog(@"DATA NULL");
}
else
    NSLog(@"DATA OK");

    NSLog(@"PATH:%@", path_video);

    self.player = [[MPMoviePlayerController alloc] initWithContentURL:[NSURL fileURLWithPath:path_video]];

在这一点上它工作正常。

但是当我关闭并再次打开应用程序并获得路径时,我的应用程序崩溃并且我有日志“DATA NULL”我不明白为什么当我关闭我的应用程序时文件消失了......这是怎么回事?

谢谢

【问题讨论】:

  • 您使用的是设备还是模拟器? Ofc 我建议在真机上试用。
  • 我用的是真机... iPhone 5s
  • 好的,我刚刚在 iPad 上试了一下,它运行良好,我的 iPhone 发生了什么?
  • 我猜这是另一个问题 ;) (笑话)你的 iPhone 有足够的磁盘空间吗?我建议不要自动尝试写入数据(它会直接写入您的路径而不是首先写入 RAM,只是为了进行测试检查)
  • 收到YES 并不意味着它运行良好。在调用中传递一个 NSError 指针,如果不是nil,则尝试NSLog NSError 的localizedDescription。

标签: ios file ios8 nsdocumentdirectory


【解决方案1】:

这是因为在 iOS 8 + 中,应用程序文件夹的名称在您每次启动时都会被重命名。

在 /Users/"your username"/Library/Developer/CoreSimulator/Devices/"device name"/data/Containers/Data/Application/"application name" 中检查(在模拟器中测试)。

因此,您必须保存没有文档目录的路径。当您尝试检索路径时,您必须在之前保存的路径之前添加文档目录。

比如让您的自定义文件夹名称为“Save_Video”,文件名为“video_01.mp4”。 您的文件保存路径将是“应用程序文档目录”/Save_Video/video_01.mp4

然后您必须只存储“Save_Video/video_01.mp4”(在数据库/NSUserDefaults 中),当您检索文件时,路径应该是

“申请文件目录”/Save_Video/video_01.mp4

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-06-13
    • 2015-05-22
    • 1970-01-01
    • 2015-03-30
    • 2017-10-19
    • 2012-05-04
    • 2013-03-31
    • 2013-02-06
    相关资源
    最近更新 更多