连接数据库

来源:互联网 发布:手机淘宝评论怎么查看 编辑:程序博客网 时间:2024/06/06 14:00

了解iPhone应用程序中App目录结构是本文要介绍的内容,不多说,直接进入内容。iPhoneApp的目录结构如下:

了解iPhone应用程序中App目录结构

对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox).

一个app发布到iPhone上后,它得目录结构如下:

1、其中得app root可以用 NSHomeDirectory() 访问到;

2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过:

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  
  2.  
  3. NSUserDomainMask, YES); NSString *documentsDirectory = [paths objectAtIndex:0]; 

得到。

3、tmp 目录我们可以在里面写入一些程序运行时需要用得数据,里面写入得数据在程序退出后会没有。可以通过

  1. NSString *NSTemporaryDirectory(void);  

方法得到;

4、文件一些主要操作可以通过NSFileManage 来操作,可以通过 [NSFileManger defaultManger] 得到它得实例。

相关得一些操作:

创建一个目录:比如要在Documents下面创建一个test目录,

  1. NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);   
  2.  
  3. NSString *documentsDirectory = [paths objectAtIndex:0];   
  4.  
  5. NSLog(@”%@”,documentsDirectory);  
  6.  
  7. NSFileManager *fileManage = [NSFileManager defaultManager];  
  8.  
  9. NSString *myDirectory = [documentsDirectory stringByAppendingPathComponent:@“test”];  
  10.  
  11. BOOL ok = [fileManage createDirectoryAtPath:myDirectory attributes:nil]; 

取得一个目录下得所有文件名:(如上面的myDirectory)可用

  1. NSArray *file = [fileManager subpathsOfDirectoryAtPath: myDirectory error:nil];  

  1. NSArray *files = [fileManager subpathsAtPath: myDirectory ];  

读取某个文件:

  1. NSData *data = [fileManger contentsAtPath:myFilePath]; 

//myFilePath是包含完整路径的文件名

或直接用NSData 的类方法:

  1. NSData *data = [NSData dataWithContentOfPath:myFilePath];  

保存某个文件:

可以用 NSFileManager的

  1. - (BOOL)createFileAtPath:(NSString *)path contents:(NSData *)data attributes:(NSDictionary *)attr;  

或 NSData 的

  1. - (BOOL)writeToFile:(NSString *)path atomically:(BOOL)useAuxiliaryFile;   
  2.  
  3. - (BOOL)writeToFile:(NSString *)path options:(NSUInteger)writeOptionsMask error:(NSError **)errorPtr;  
 
 
 
 
 

1、获取程序的Home目录

      NSString  *path = NSHomeDirectory();

      NSLog(@"path:%@",path);

      打印结果:

   2012-07-11 11:18:16.291 TestProject[2387:f803] path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A

   真机上的目录是:

   2012-06-17 14:25:47.059 IosSandbox[4281:f803] /var/mobile/Applications/3B8EC78A-5EEE-4C2F-B0CB-4C3F02B996D2

   可见,真机上的目录是/var/mobile/Applications/这个目录下的,和模拟器不一样。这个是Home目录,其他的子目录和模拟器一样。

2、获取Document目录

   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 

   NSString *path = [paths objectAtIndex:0]; 

   NSLog(@"path:%@", path); 

   打印结果: 

   2012-07-11 11:21:22.879 TestProject[2417:f803] path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A/Documents

3、获取Cache目录

   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES); 

   NSString *path = [paths objectAtIndex:0]; 

   NSLog(@"path:%@", path); 

   打印结果:

   2012-07-11 11:13:36.162 TestProject[2310:f803] path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A/Library/Caches

4、获取Library目录

   NSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 

   NSString *path = [paths objectAtIndex:0]; 

   NSLog(@"path:%@", path);

   打印结果:

   2012-07-11 11:14:41.138 TestProject[2337:f803] path:/Users/username/Library/Application Support/iPhone Simulator/5.1/Applications/BAE91297-A4C6-4DDC-A9DA-7B790B36CE7A/Library

5、获取Tmp目录

   NSString *path = NSTemporaryDirectory(); 

   NSLog(@"%@", path);

   打印结果:

  2012-07-11 11:16:09.438 TestProject[2358:f803] path:/var/folders/hj/8sgyk0f555l1z_n95p2b2kp00000gn/T/

 

6、写入文件

   NSArray  *paths  =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

   NSString *docDir = [paths objectAtIndex:0];

   if(!docDir) {

        NSLog(@"Documents 目录未找到");

   }

   NSArray *array = [[NSArray alloc] initWithObjects:@"内容",@"content",nil];

   NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];

   [array writeToFile:filePath atomically:YES];

7、读取文件

   NSArray  *paths  =  NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask,YES);

   NSString *docDir = [paths objectAtIndex:0];

   NSString *filePath = [docDir stringByAppendingPathComponent:@"testFile.txt"];

   NSArray *array = [[NSArray alloc] initWithContentsOfFile:filePath];

   NSLog(@"%@",array);

 

原创粉丝点击