我在这里有点沮丧的问题,问题是我想将一个目录从Bundle复制到我的应用程序中的Library路径,但代码不能这样做。目录树显示在此处:
在复制目录之前,我想检查bundle中的目录内容,但是数组返回0项。我使用的代码是:
NSString * templatesBundlePath = [[NSBundle mainBundle] pathForResource:@"Templates" ofType:nil];
NSArray * packFolders = [[NSFileManager defaultManager] contentsOfDirectoryAtURL:[NSURL fileURLWithPath:templatesBundlePath] includingPropertiesForKeys:[NSArray arrayWithObjects:NSURLIsDirectoryKey, nil] options:0 error:&error];
packfolders包含0项。
如果包含不是0,我尝试使用以下代码复制它:
NSString * templatesAppPath = NSApplicationSupportDirectoryPath(@"Templates");
[[NSFileManager defaultManager] copyItemAtPath:templatesBundlePath toPath:templatesAppPath error:&error];
当我尝试使用此代码检查捆绑目录大小时
NSFileManager *fm = [[NSFileManager alloc] init];
resultSize = [[[fm attributesOfItemAtPath:[[NSURL fileURLWithPath:templatesBundlePath] path] error:nil] objectForKey:NSFileSize] unsignedIntegerValue];
NSLog(@"Size: %lu", (unsigned long)resultSize);
该值仅显示68,但查找器中的实际大小为200MB
有人像我一样有问题吗?有人能帮助我吗?
谢谢
答案 0 :(得分:1)
项目文件夹是黄色的,这意味着它们是组而不是文件夹。在将资源与应用程序捆绑在一起时,将删除目录结构,并且所有文件都放在捆绑包的根目录中。
只需从项目中删除所有组并将文件夹拖回到项目中,现在选择创建文件夹而不是组。
答案 1 :(得分:0)
请尝试使用black.jpg图片路径:
NSString * strpath = [NSString stringWithFormat:@“%@”,[[NSBundle mainBundle] pathForResource:@“Templates”ofType:@“”]]; strpath = [strpath stringByAppendingString:@“/”]; strpath = [strpath stringByAppendingString:@“80s”]; strpath = [strpath stringByAppendingString:@“/”]; strpath = [strpath stringByAppendingString:@“80s_a-team”]; strpath = [strpath stringByAppendingString:@“/”]; strpath = [strpath stringByAppendingString:@“black”]; strpath = [strpath stringByAppendingString:@“。jpg”];
答案 2 :(得分:0)
尝试以下代码
NSArray *libraryPath=NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);
NSString *directoryPath = [libraryPath objectAtIndex:0];
NSString *imagePathFromApp = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"Templete"];
// Copy the image Folder from the package to the users filesystem
[fileManager copyItemAtPath:imagePathFromApp toPath:directoryPath error:nil];