我自己的目录的位置

时间:2010-02-23 17:00:47

标签: iphone objective-c xcode file-management

我试图了解如何创建自己的目录树并从我的应用程序访问它。

我正在做某种学习计划,想要创建一个像这样的目录结构:

-MyLessonsDirectory
--LessonDirectory_1
---Step_1
---Step_2
---Step_3
--LessonDirectory_2
---Step_1
---Step_2
---Step_3
.
.
and so on

在每个“Step”目录中,我将为本课程的该步骤提供具体内容。我在开发过程中添加了内容。因此,我不想在应用程序中创建结构和内容,只是访问它并读取目录的内容。如果我可以创建这种结构并使用它,那么创建一个漂亮的设计将很容易在我的应用程序中创建新的课程。

我无法弄清楚我应该在xCode的文件结构中创建这些目录的位置以及从我的应用程序到这些目录的路径是什么。

2 个答案:

答案 0 :(得分:2)

您想要查看NSFileManager来创建目录:

NSFileManager *fm = [NSFileManager defaultManager];
NSError *error;
BOOL result = [fm createDirectoryAtPath:@"path....." withIntermediateDirectories:YES attributes:nil error:&error];
if(result){
   NSLog(@"success!");
} else {
   NSLog(@"error: %@",error);
}

至于创建目录的位置,您可以将其放在〜/ Application Support / - 您的应用程序名称中 - 如果用户不需要访问它,您应该存储应用程序的数据。否则,您应该让用户决定保存位置。

- (NSString *)applicationSupportDirectory {

       NSArray *paths = NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES);
       NSString *basePath = ([paths count] > 0) ? [paths objectAtIndex:0] : NSTemporaryDirectory();
       return [basePath stringByAppendingPathComponent:@"MyApplication"];
}

答案 1 :(得分:1)

在iPhone上,您只能访问应用程序自己的目录。将练习目录放在app目录的Documents文件夹中的最佳位置。

此...

NSString *dp=[NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];

...为您提供目录文件夹的路径,然后您可以将其移交给NSFileManager。

如果要直观地查看目录结构,请在模拟器上运行应用程序并查看

~/Library/Application Support/iPhone Simulator/User/Applications

该应用程序将位于其中一个带有乱码UUID名称的文件夹中。您可以在Finder中查看目录和文件。

我想补充一点,iPhone已经拥有了你可能真正需要的大部分目录。你有所有的首选项,缓存,tmp,文档等。

Edit01:

  

我想要做的是添加内容   我开始之前手动   应用。然后,从内部   应用程序我将阅读内容I.   在开始申请之前添加。

您无法更改默认目录结构,并且您无法完全控制应用程序或其目录的安装方式。 iPhone应用程序没有任何类型的外部支持文件。每件事都在应用程序包中。

但是,应用程序包实际上只是一个目录,因此您可以在其中填充内容并在应用程序第一次运行时将其复制到其中一个默认目录中。您可以将任何想要的内容写入文档目录。