gpt4 book ai didi

iOS - NSFileManager 文件不存在

转载 作者:行者123 更新时间:2023-11-28 19:40:13 27 4
gpt4 key购买 nike

我在 Apple 托管我的应用内购买内容。我已成功下载内容,现在我想将其保存在设备中。

[[NSFileManager defaultManager] removeItemAtPath:dstPath error:nil];
[[NSFileManager defaultManager] copyItemAtPath:srcPath toPath:dstPath error:nil];

上面的这段代码是我如何将下载的内容移动到我想要的位置。

它似乎工作正常,当我尝试显示它工作的内容时。但是当我停止并再次运行应用程序时,文件不存在。

我错过了什么?

我的代码:

- (void)processDownload:(SKDownload *)download
{
NSString *path = [download.contentURL path];

path = [path stringByAppendingPathComponent:@"Contents"];

NSFileManager *fileManager = [NSFileManager defaultManager];
NSError *error;
NSArray *files = [fileManager contentsOfDirectoryAtPath:path error:&error];

NSMutableArray *stickersDownloadedArray = [[NSMutableArray alloc] init];

for (NSString *file in files)
{
NSString *fullPathSrc = [path stringByAppendingPathComponent:file];

NSString *fileName = [fullPathSrc lastPathComponent];
NSString *fullPathDst = [[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"/%@", fileName]];

[fileManager removeItemAtPath:fullPathDst error:nil];
[fileManager moveItemAtPath:fullPathSrc toPath:fullPathDst error:nil];

NSLog(@"fullPathDst: %@", fullPathDst);
NSLog(@"file: %@", file);
NSLog(@"key: %@", download.transaction.payment.productIdentifier);

[stickersDownloadedArray addObject:fullPathDst];
}

[[NSUserDefaults standardUserDefaults] setObject:stickersDownloadedArray
forKey:download.transaction.payment.productIdentifier];
[[NSUserDefaults standardUserDefaults] synchronize];
}

fullPathDst 的一个例子是

/var/mobile/Containers/Data/Application/E921ADD6-B022-4DA2-8416-627DB44E679A/Documents/real4_12@2x.png

最佳答案

应用的沙箱会在不同时间发生变化。您绝不能存储文件的完整路径。仅存储相对路径。

在您的情况下,仅存储相对于 Documents 文件夹的路径。当您在应用启动时重新加载相对路径时,您会再次重新计算完整路径。

关于iOS - NSFileManager 文件不存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34830142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com