iOS文件系统---tmp

本文介绍了iOS系统中tmp目录的用途,强调该目录下的数据不会通过iCloud同步。同时,详细阐述了如何在Documents目录下创建Imgs子文件夹并下载图片存储,包括创建文件夹的步骤、图片放入文件夹的流程以及处理可能存在的路径问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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(@"下载失败");
        }
    }
   }
  }
 }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值