精华内容
下载资源
问答
  • IOS 创建目录/文件夹

    2019-10-06 14:45:39
    IOS 应用目录简介 iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像... Library和 tmp。Library包含Caches、Prefere...

    •IOS 应用目录简介

    iOS的沙盒机制,应用只能访问自己应用目录下的文件。iOS不像android,没有SD卡概念,不能直接访问图像、视频等内容。iOS应用产生的内容,如图像、文件、缓存内容等都必须存储在自己的沙盒内。默认情况下,每个沙盒含有3个文件夹:Documents, LibrarytmpLibrary包含CachesPreferences目录。

    • Documents:应用中用户数据可以放在这里,iTunes备份和恢复的时候会包括此目录
    • tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除
    • Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录下文件不会在应用退出删除

    •IOS 获取应用沙盒目录

    关于定位应用目录主要用到了NSSearchPathForDirectoriesInDomains 和 NSHomeDirectory();

    1、NSSearchPathForDirectoriesInDomains 定位到沙盒的Document、Library以及Caches 目录

    (1)、定位Document 目录

    NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    (2)、定位Library 目录

    NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    (3)、定位Caches 目录,Caches 目录位于Library目录下
    NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];

    2、定位到tem目录的方法

    使用NSSearchPathForDirectoriesInDomains只能定位Caches、Library、Documents目录, tmp目录,不能按照此方法获得,此时可以采用NSHomeDirectory定位到应用程序主目录,也就是Document 的上一层目录

    NSString *temp = NSTemporaryDirectory();

    3、获取沙盒根目录:NSHomeDirectory()

    使用NSHomeDirectory()可以获取到沙盒的根目录,也就是Document的上一层。
    利用NSHomeDirectory()我们可以获取沙盒中的任意文件的路径
    例如:获取tmp的路径如下所示:

    NSString *filePath=[NSHomeDirectory() stringByAppendingPathComponent:@"tmp"];
    

    •IOS NSFileManager文件操作

    还是直接上代码吧!

    #pragma mark 使用NSSearchPathForDirectoriesInDomains创建文件目录
    - (void) createDir {
        
        // NSDocumentDirectory 沙盒 Documents 目录
        // NSLibraryDirectory  沙盒 Library   目录
        // NSCachesDirectory   沙盒 Library/Caches   目录
        // 使用NSSearchPathForDirectoriesInDomains只能定位Caches、Library、Documents目录,tmp目录,不能按照此方法获得
        NSString * docsdir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSString *dataFilePath = [docsdir stringByAppendingPathComponent:@"head"]; // 在指定目录下创建 "head" 文件夹
        
        NSFileManager *fileManager = [NSFileManager defaultManager];
        
        BOOL isDir = NO;
        
        // fileExistsAtPath 判断一个文件或目录是否有效,isDirectory判断是否一个目录
        BOOL existed = [fileManager fileExistsAtPath:dataFilePath isDirectory:&isDir];
        
        if ( !(isDir == YES && existed == YES) ) {
            
            // 在 Document 目录下创建一个 head 目录
            [fileManager createDirectoryAtPath:dataFilePath withIntermediateDirectories:YES attributes:nil error:nil];
        }
        
        NSLog(@"+++++++++++++++++++%@",dataFilePath);
    }
    


    #pragma mark 使用 NSHomeDirectory() 创建文件目录
    - (void) createDir {
        
        // NSHomeDirectory():应用程序目录, @"tmp/temp":在tmp文件夹下创建temp 文件夹
        NSString *filePath=[NSHomeDirectory() stringByAppendingPathComponent:@"tmp/temp"];
        
        NSFileManager *fileManager = [NSFileManager defaultManager];
        
        BOOL isDir = NO;
        
        // fileExistsAtPath 判断一个文件或目录是否有效,isDirectory判断是否一个目录
        BOOL existed = [fileManager fileExistsAtPath:filePath isDirectory:&isDir];
        
        if ( !(isDir == YES && existed == YES) ) {
            
            // 在 tmp 目录下创建一个 temp 目录
            [fileManager createDirectoryAtPath:filePath withIntermediateDirectories:YES attributes:nil error:nil];
        }
        
        NSLog(@"+++++++++++++++++++%@",filePath);
    }

    关于目录/文件的其他操作

    #pragma mark fileManager 的其他操作
    - (void) fileManager:(NSString *) filePath { // filePath: 文件/目录的路径
        
        NSFileManager *fileManager = [NSFileManager defaultManager];
        
        // 取得一个目录下得所有文件名
        NSArray *files = [fileManager subpathsAtPath:filePath];
        
        // 读取某个文件
        NSData *data = [fileManager contentsAtPath:filePath];
        
        // 删除文件/文件夹
        [fileManager removeItemAtPath:filePath error:nil];
    }

    转载请指明出处:点击打开链接

    转载于:https://www.cnblogs.com/duke-cui/p/11099154.html

    展开全文
  • iOS Documents、Library跟tmp的作用 iOS Documents、Library和tmp的作用 沙盒(sandbox) 出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会...

    iOS Documents、Library跟tmp的作用

    iOS Documents、Library和tmp的作用
    沙盒(sandbox)

    出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用程序的沙盒。

    目录下共有四个子目录:

    Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。

    AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。

    Library 目录:这个目录下有两个子目录:Caches 和 Preferences

    Preferences 目录包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好

    Caches 目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。

    tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。
    展开全文
  • iOS Documents、Library和tmp的作用

    千次阅读 2016-03-25 09:07:51
    iOS Documents、Library和tmp的作用 沙盒(sandbox) 出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用...
    iOS Documents、Library和tmp的作用
    沙盒(sandbox)

    出于安全的目的,应用程序只能将自己的数据和偏好设置写入到几个特定的位置上。当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用程序的沙盒。

    目录下共有四个子目录:

    Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据或其它应该定期备份的信息。
    AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
    Library 目录:这个目录下有两个子目录:Caches 和 Preferences
    Preferences 目录包含应用程序的偏好设置文件。您不应该直接创建偏好设置文件,而是应该使用NSUserDefaults类来取得和设置应用程序的偏好
    Caches 目录用于存放应用程序专用的支持文件,保存应用程序再次启动过程中需要的信息。
    tmp 目录:这个目录用于存放临时文件,保存应用程序再次启动过程中不需要的信息。

    获取这些目录路径的方法:

        NSString *homeDir = NSHomeDirectory();
        NSLog(@"homeDir:%@",homeDir);
        
        NSString *docDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSLog(@"docDir:%@",docDir);
        
        NSString *cachesDir = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) objectAtIndex:0];
        NSLog(@"cachesDir:%@",cachesDir);
        
        NSLog(@"tmpDir:%@",NSTemporaryDirectory());
    


    获取应用程序程序包中资源文件路径的方法:
    例如获取程序包中一个图片资源(apple.png)路径的方法:
    NSString *imagePath = [[NSBundle mainBundle] pathForResource:@"apple" ofType:@"png"];
    UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];

    代码中的mainBundle类方法用于返回一个代表应用程序包的对象。



    总结:

    用户生成的文件放在documents,自己的文件放在library/cache里面---------by apple

    简单的说明:如果你做个记事本的app,那么用户写了东西,总要把东西存起来。那么这个文件则是用户自行生成的,就放在documents文件夹里面。

    如果你有一个app,需要和服务器配合,经常从服务器下载东西,展示给用户看。那么这些下载下来的东西就放在library/cache。

    apple对这个很严格,放错了就会被拒。主要原因是ios的icloud的同步问题。 

    展开全文
  • iOS文件系统---tmp

    2016-08-23 17:44:00
    tmp: 存放临时数据,此目录下的数据不会通过iCloud进行同步获取tmp的目录NSString *tmpPath=NSTemporaryDirectory();下载图片,放在Documents 下的Imgs文件1.创建文件夹 ( 1.获取tmp的目录 2.拼接成我们想要的文件...

    tmp: 存放临时数据,此目录下的数据不会通过iCloud进行同步

    获取tmp的目录

    NSString *tmpPath=NSTemporaryDirectory();

    下载图片,放在Documents 下的Imgs文件

    1.创建文件夹
    (
    1.获取tmp的目录
    2.拼接成我们想要的文件目录 , 接着进行判断是否之前存在该路径
    3.假设不存 , 那么进行文件夹的创建
    4.判断是否创建成功
    )

    -(NSString *)createDirInTmp:(NSString *)dirName{
    
    NSString *tmpPath=NSTemporaryDirectory();
    //想要的文件夹路径
    NSString *dirPath= [tmpPath stringByAppendingPathComponent:dirName];
    
    NSFileManager *fileManager=[NSFileManager defaultManager];
    
    if ( ![fileManager fileExistsAtPath:dirPath]) {
    //文件夹的创建
       NSError *error;
       BOOL isSuccess= [fileManager createDirectoryAtPath:dirPath withIntermediateDirectories:YES attributes:nil error:&error];
    
       if (!isSuccess) {
          NSLog(@"error=%@",error.debugDescription);
          dirPath=nil;
      }     
      }
        return dirPath;
    }
    

    2.将图片放入Imgs文件夹中
    (
    1.调用创建文件夹的方法 , 判断文件夹是否为nil
    2.如果文件夹不为nil 接着获得每张图片的路径
    3.判断每张图片的路径是否之前存在
    4.假设不存在,就对每张图片的url进行编码,防止存在中文
    5.用NSDate读取每张编码后的图片
    6.判断是否读取成功
    )

     NSString *imgsDocumentPath= [self createDirInTmp:@"Imgs"];
    
    NSArray *imgsArray=@[@"网上图片1",@"网上图片2"];
    
     if (imgsDocumentPath !=nil) {
     for (int i=0; i<imgsArray.count; i++) {
    
      NSString *imgsString =[imgsArray[i] lastPathComponent];
     //获取每张图片的路径
     NSString *imgsPath=[imgsDocumentPath stringByAppendingPathComponent:imgsString];
    
    NSFileManager *fileManager=[NSFileManager defaultManager];
    
     if (![fileManager fileExistsAtPath:imgsPath]) {
     //将每张图片的url进行编码(防止存在中文)
     NSString *urlString= [imgsArray[i] stringByAddingPercentEncodingWithAllowedCharacters:[NSCharacterSet URLQueryAllowedCharacterSet]];
    
     NSData *data= [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]];
    
      if (data==nil) {
          NSLog(@"网络有问题,请稍后再下载");
         }
         else{
           BOOL isSuccess= [data writeToFile:imgsPath atomically:YES];
           if (isSuccess) {
             NSLog(@"图片下载成功");
           }
          else{
              NSLog(@"下载失败");
            }
        }
       }
      }
     }
    
    展开全文
  • iOS 应用目录简介 iOS的沙盒机制,应用只能访问自己应用目录下的文件。...默认情况下,每个沙盒含有3个文件夹:Documents, Library和 tmp。Library包含Caches、Preferences目录。 Documents:应用中用户数...
  •  用户生成的文件、其他数据及其他程序不能重新创建的文件,iTunes备份和恢复的时候会包括此目录。 2.Library/Caches:  可以重新下载或者重新生成的数据,数据库缓存文件和可下载内容应该保存到这个文件夹,iTunes...
  • 只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在/Documents 目录下面,并将通过iCloud自动备份。 2.Library: 可以重新下载或者重新生成的数据应该保存在 /Library/Caches 目录下面。举...
  • 当第一次启动app 的时候,iOS操作系统就为此app创建一个文件系统,该文件系统下,默认有四个目录/*Document:存储用户在操作app 时产生的数据,在此目录下的数据可以通过iCloud进行同步 Library:用户偏好设置,...
  • 当应用程序被安装到设备上时,系统会为其创建一个家目录,这个家目录就是应用程序的沙盒。 家目录下共有四个子目录: Documents 目录:您应该将所有的应用程序数据文件写入到这个目录下。这个目录用于存储用户数据...
  •  只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在/Documents目录下面,并将通过iCloud自动备份。 2.Library  可以重新下载或者重新生成的数据应该保存在/Library /caches目录下面。...
  • 使用MailCore创建iOS邮件客户端(三)

    千次阅读 2012-12-05 10:31:17
    五、在webview中预览附件点击附件后,我们需要将附件下载到本地(tmp文件夹)并用在webview中预览它:CTCoreAttachment* core_att=(CTCoreAttachment*)sender.tag; NSString *ext=[core_att....
  • 只有用户生成的文件、其他数据及其他程序不能重新创建的文件,应该保存在/Documents目录下面,并将通过iCloud自动备份。 2.Library 可以重新下载或者重新生成的数据应该保存在/Library /caches目录下面。举个例子...
  • IOS aac裸数据创建音频SampleBuffer

    千次阅读 2016-06-13 21:31:06
    - (CMSampleBufferRef)createAudioSampleBuffer:(char*) buf withLen:(int) len withASBD:(AudioStreamBasicDescription) asbd{ AudioBufferList audioData; audioData.mNumberBuffers = 1;... char* tmp
  • 沙盒下主要有四个文件夹:document,caches,tmp,library document 的路径 程序运行时生成的文件,这个文件不要存比较放大的文件,比如音频,视频类,因为这里的东西会被上传 caches 的路径 一般用于文件的下载,存储(不会...
  • link-569975294/000004.o /tmp/go-link-569975294/000005.o /tmp/go-link-569975294/000006.o /tmp/go-link-569975294/000007.o /tmp/go-link-569975294/000008.o /tmp/go-link-569975294/000009.o /tmp/go-link-...
  • 我们关注的两个文件夹是doucuments 和 tmp .那么如何获得这两个路径以及 路径下文件的创建呢 ? 看看如下代码: - (void)viewDidLoad { [super viewDidLoad]; NSArray *paths = NSSearchPathForDire
  • iOS 沙盒

    2015-07-10 14:34:00
    沙盒:iOS应用程序只能对自己创建的文件系统读取文件,这个“独立”“封闭”“安全”的空间,我们称为沙盒。 模拟器沙盒的位置:/Users/userName/Library/Application Support/iPhone Simul≠≠ator。 Documents:...
  • ios--->ios沙盒总结

    2017-11-29 14:56:00
    iOS应用程序只能在该程序创建的文件系统中读取文件,不可以去其它地方访问,此区域被成为沙盒,所以所有的非代码文件都要保存在此,例如图像,图标,声音,映像,属性列表,文本文件等。 默认情况下,每个沙盒含有3...
  • iOS沙盒

    2017-03-21 19:18:00
    Documents 苹果建议将程序中创建的或在程序中浏览到的文件数据保存在该目录下,iTunes备份和恢复的时候会包括此目录; Library 存储程序的默认设置或其它 状态信息;...tmp 创建和存放临时文件的地方。 ...
  • ios 文件操作

    2014-12-29 17:07:08
    获取应用沙盒根路径获取Documents目录路径获取Library目录路径获取Cache目录路径获取Tmp目录路径创建文件夹创建文件写数据到文件读文件数据文件属性删除文件  iOS的沙盒机制,应用只能访问自己应用目录下的...
  • 因为应用是在沙箱(sandbox)中的,在文件读写权限上...* tmp:存放临时文件,iTunes不会备份和恢复此目录,此目录下文件可能会在应用退出后删除 * Library/Caches:存放缓存文件,iTunes不会备份此目录,此目录...

空空如也

空空如也

1 2 3 4 5
收藏数 97
精华内容 38
关键字:

ios创建tmp