我有几个大文件,我想将它们加载到应用程序文件夹中,然后按需从那里调用。
我看到的建议是将它们放在资源文件夹中,然后在应用程序加载时将它们复制到文档文件夹中。我假设如果我这样做,这些大文件将在应用程序启动时全部加载到内存中,然后留在那里......
有没有办法让这些文件在安装应用程序时直接进入文档文件夹,并且仅在调用它们时才加载到内存中?
谢谢...
安装时无法自动执行此操作。
您可以使用NSFileManager
它来复制您的文件。
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *finalPath = [documentsDirectory stringByAppendingPathComponent:@"documentName"];
[[NSFileManager defaultManager] copyItemAtPath:yourDocumentPath toPath:finalPath error:nil];
取决于文件最初所在的位置。如果在您的捆绑包中,请使用 NSFileManager,就像 gcamp 说的那样。如果您从网络下载它们,或者动态生成它们,请使用 NSOutputStream - 这是用于将二进制或文本数据从内存写入文件的 API。或者使用 POSIX open()/write(),老派。