【问题标题】:Create A Subfolder On iOS App Installation在 iOS 应用安装上创建子文件夹
【发布时间】:2014-08-29 08:13:31
【问题描述】:

我想在我的应用程序的文档文件夹中创建一个图像文件夹,以容纳我稍后下载的一堆图像。首次安装应用程序时如何创建此文件夹?我确定这是我无法在 Xcode 中找到的设置...

【问题讨论】:

  • 你试过搜索吗?
  • 这个没有设置。你必须在代码中创建一个,使用NSFileManager
  • trojanfoe : +1 也许您正在寻找类似 FileSharing 的东西。如果你激活它,你可以通过 iTunes 将你的文件和文件夹直接扔到你的应用程序目录中。

标签: ios xcode swift


【解决方案1】:

这就是我在应用程序第一次运行时创建目录的方式,放在 AppDelegate 中:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:
  (NSDictionary*)launchOptions {

/////////////////////////////////////////
// Create Content directories if needed
/////////////////////////////////////////

NSFileManager *filemgr;
NSArray *dirPaths;
NSString *docsDir;
NSString *newDir;
NSString *thumbNails;
NSString *largeImages;

filemgr =[NSFileManager defaultManager];
dirPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,
                                               NSUserDomainMask, YES);
docsDir = dirPaths[0];

// Picture Directory
newDir = [docsDir stringByAppendingPathComponent:@"/myPictures"];
if(![filemgr fileExistsAtPath:newDir])
{
    NSData *data = [NSData dataWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/myPictures"]];
    NSError *error;
    [[NSFileManager defaultManager] createDirectoryAtPath:[docsDir stringByAppendingPathComponent:@"/myPictures"] withIntermediateDirectories:YES attributes:nil error:&error];
    [data writeToFile:newDir atomically:YES];
}

// Nested Thumbnail Directory
thumbNails =[docsDir stringByAppendingPathComponent:@"/myPictures/thumb"];
if(![filemgr fileExistsAtPath:thumbNails])
{
    NSData *data = [NSData dataWithContentsOfFile:[[[NSBundle mainBundle] resourcePath] stringByAppendingString:@"/myPictures/thumb"]];
    NSError *error;
    [[NSFileManager defaultManager] createDirectoryAtPath:[docsDir stringByAppendingPathComponent:@"/myPictures/thumb"] withIntermediateDirectories:YES attributes:nil error:&error];
    [data writeToFile:thumbNails atomically:YES];
}

【讨论】:

  • 虽然这不是一个特别昂贵的过程,但最好将这种处理推迟到需要时进行。即,当需要存储第一个文件时执行此操作。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-25
  • 1970-01-01
  • 1970-01-01
  • 2011-12-20
  • 1970-01-01
相关资源
最近更新 更多