Создание файла plist только при первом запуске в каталоге документов устройства - PullRequest
0 голосов
/ 14 июля 2010

В настоящее время у меня есть все настройки для чтения из каталога документов и записи в него, но я не могу этого сделать, поскольку файл еще не существует.

Как создается файл в коде?

Ответы [ 3 ]

1 голос
/ 14 июля 2010

Если у вас уже есть шаблонная версия документа в комплекте вашего приложения, то вы сможете записать ее в каталог документов приложения, используя нечто похожее на следующее.Я не тестировал этот код, поэтому, возможно, я ошибся в некоторых вещах, но это общая идея.

- (void) applicationDidFinishLaunching {
  NSArray* directories = NSSearchPathsForDirectoriesInDomain(NSDocumentsDirectory, NSUserDomainMask, YES);
  NSString* documentsDirectory = [directories objectAtIndex: 0];
  NSString* path = [documentsDirectory stringByAppendingPathComponent: @"Something.plist"];

  if (![[NSFileManager sharedInstance] fileExistsAtPath: path]) {
    NSString* infoTemplatePath = [[NSBundle mainBundle] pathForResource: @"Something" ofType: @"plist"];
    NSDictionary* info = [NSDictionary dictionaryWithContentsOfFile: infoTemplatePath];
    [info writeToFile: path];
  }
}
1 голос
/ 14 сентября 2010

Этот работает лучше для меня:

        NSFileManager *fileManager = [NSFileManager defaultManager];
    NSError *error;
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    NSString *documentsDirectory = [paths objectAtIndex:0];
    NSString *documentDBFolderPath = [documentsDirectory stringByAppendingPathComponent:@"*.db"];

    if (![fileManager fileExistsAtPath:documentDBFolderPath])
    {
        NSString *resourceDBFolderPath = [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"*.db"];
        [fileManager copyItemAtPath:resourceDBFolderPath toPath:documentDBFolderPath error:&error];
    }
1 голос
/ 14 июля 2010

Используйте NSFileManger's fileExistsAtPath:, чтобы увидеть, существует ли файл. Если не создать его, прежде чем перейти к коду, который требует файл.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...