iphone存储以及读取指定文件(Documents)中的内容

51单片机也能玩转信号发生器?手把手教你用DAC0832和LM358输出四种标准波形 本文详细介绍了如何使用51单片机和DAC0832芯片搭配LM358运放,自制低成本信号发生器,实现正弦波、矩形波、三角波和锯齿波四种标准波形的输出。从硬件选型、电路设计到编程实现,手把手教你完成这一实用电子项目,总成本不到50元,适合电子爱好者和学生实践。 阅读详情
有时需要把一些资料保存在沙盒Documents或其下的新建文件夹中

存储

if (image!=nil) 
{
	NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
	//以model.itemid image.png为区分保存在Documents中
	NSString *uniquePath=[[paths objectAtIndex:0] stringByAppendingPathComponent:[NSString stringWithFormat:@"image%d.png",model.itemid]];
	BOOL result = [UIImagePNGRepresentation(image) writeToFile:uniquePath atomically:YES];
	if (result)
	{
	  UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"图片保存成功!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
	  [alert show];
	  [alert release];
	} else {
		UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"图片保存失败!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
		[alert show];
		[alert release];
	}  
}

取值

NSString *documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDir error:nil];
//所有png图片存在一个Array数组中
NSArray *onlyPics = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.png'"]];
couponMyViewController.pageArray = onlyPics; //传值到下一个Controller中

操作

NSString *operate = [actionSheet buttonTitleAtIndex:buttonIndex];
if ([operate isEqualToString:@"删除优惠券"]) 
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
    NSString *documentsDirectory = [paths objectAtIndex:0]; 
    NSString *filePath = [documentsDirectory stringByAppendingPathComponent:[pageArray objectAtIndex:pageTag]];
    BOOL succeed = [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];


    if (succeed) 
    {
			UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"" message:@"图片删除成功!" delegate:nil cancelButtonTitle:@"确定" otherButtonTitles:nil];
			[alert show];
			[alert release];
			[navigation popViewControllerAnimated:YES];  
    }
}
else if ([operate isEqualToString:@"保存到相册"])
{
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
    NSString *documentDir = [paths objectAtIndex:0];
    NSString *imgPath=[documentDir stringByAppendingPathComponent:[pageArray objectAtIndex:pageTag]];
    UIImage *img=[UIImage imageWithContentsOfFile:imgPath];
    UIImageWriteToSavedPhotosAlbum(img, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}


- (void)image:(UIImage *)image didFinishSavingWithError:(NSError *)error contextInfo:(void *)contextInfo 
{
    if (error != NULL)
    {
    }
    else  // No errors
    {
			[self saveSucceed];
    }
}


- (void)saveSucceed 
{
    UIAlertView *sucAlert = [[UIAlertView alloc] initWithTitle:@"" message:@"图片已保存到相册" delegate:self cancelButtonTitle:@"确定" otherButtonTitles:nil];
    [sucAlert show];
    [sucAlert release];
    self.navigationItem.leftBarButtonItem.enabled = YES;
    self.navigationItem.rightBarButtonItem.enabled = YES;
}

另外:UIimageView 读取图片的时候,

1、NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
  NSString *imgPath=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"bgimage.png"];
  NSData *data=[NSData dataWithContentsOfFile:imgPath];    
  UIImage *img=[UIImage imageWithData:data]; 
       
2、NSString *imgPath=[documentDir stringByAppendingPathComponent:@“dhhddjaskhfk.png”];
  UIImage *img=[UIImage imageWithContentsOfFile:imgPath];  
  
3、UIImage *img=[UIImage imageWithName:XXX];
  
4、读取URL图片
   NSURL *url = [NSURL URLWithString:@"http://xxx.jpg"];   
   NSData *urlData = [NSData dataWithContentsOfURL:url];
   UIImage *image = [UIImage imageWithData:urlData];

Documents的根目录

#define DOCUMENTS_FOLDER [NSHomeDirectory() stringByAppendingPathComponent:@"Documents"] 
#define FILEPATH [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]

通过下面这段代码,就可以获取一个目录内的文件及文件夹列表。

NSFileManager *fileManager = [NSFileManager defaultManager];
//在这里获取应用程序Documents文件夹里的文件及文件夹列表
NSArray *documentPaths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDir = [documentPaths objectAtIndex:0];
NSError *error = nil;
NSArray *fileList = [[NSArray alloc] init];
//fileList便是包含有该文件夹下所有文件的文件名及文件夹名的数组
fileList = [fileManager contentsOfDirectoryAtPath:documentDir error:&error];

以下这段代码则可以列出给定一个文件夹里的所有子文件夹名

NSMutableArray *dirArray = [[NSMutableArray alloc] init];
BOOL isDir = NO;
//在上面那段程序中获得的fileList中列出文件夹名
for (NSString *file in fileList) 
{
	NSString *path = [documentDir stringByAppendingPathComponent:file];
	[fileManager fileExistsAtPath:path isDirectory:(&isDir)];
	if (isDir) 
	{
		[dirArray addObject:file];
	}
	isDir = NO;
}
NSLog(@"Every Thing in the dir:%@",fileList);
NSLog(@"All folders:%@",dirArray);

下面的对图片的处理

//从照片库中选取照片
-(void) selectImage
{
    UIImagePickerController *picker=[[UIImagePickerController alloc]init];
    picker.delegate=self;
    picker.allowsImageEditing=YES;
    //UIImagePickerControllerSourceTypePhotoLibrary,// 相片库
    //UIImagePickerControllerSourceTypeCamera// 相机获取图片
    //UIImagePickerControllerSourceTypeSavedPhotosAlbum// 这个是自定义库,是由用户截图或保存到里面的
    picker.sourceType=UIImagePickerControllerSourceTypePhotoLibrary;
    [self presentModalViewController:picker animated:YES];
    [picker release];
}
-(void) saveImage
{
  if (myImageView.image!=nil) 
  {
	//此处首先指定了图片存取路径(默认写到应用程序沙盒 中)
	NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
	//并给文件起个文件名
	NSString *uniquePath=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"bgimage.png"];

	//此处的方法是将图片写到Documents文件中 如果写入成功会弹出一个警告框,提示图片保存成功
	BOOL result=[UIImagePNGRepresentation(myImageView.image)writeToFile: uniquePath    atomically:YES];

	if (result)
	{
	   UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Tip message" message:@"save sucess!" delegate:nil cancelButtonTitle:@"Enter" otherButtonTitles:nil];
	   [alert show];
	   [alert release];
	}
   } 
   else
   {
	UIAlertView *alert=[[UIAlertView alloc]initWithTitle:@"Tip message" message:@"Please select a picture!" delegate:nil cancelButtonTitle:@"Enter" otherButtonTitles:nil];
	[alert show];
	[alert release];
   }
}

-(void)setBackgroundImage:(UIImage *)img;
{
	//拿到应用程序沙盒里面的路径
  NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES);
	//读取存在沙盒里面的文件图片
  NSString *imgPath=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"bgimage.png"];
	//因为拿到的是个路径 把它加载成一个data对象
  NSData *data=[NSData dataWithContentsOfFile:imgPath];    
  //直接把该 图片读出来
  UIImage *img=[UIImage imageWithData:data];    
  CGRect imageRect=CGRectMake(0.0, 0.0, 320.0, 460.0);
  UIImageView *customBackground = [[UIImageView alloc] initWithFrame:imageRect];
  customBackground.image=img;
  [self.view insertSubview:customBackground atIndex:1];
  [customBackground setClipsToBounds:YES];
  [customBackground setContentMode:UIViewContentModeScaleToFill];
  [customBackground release];
  [img release];
}

从Documents中选择全部png图片

NSString *documentsDir = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
NSArray *dirContents = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:documentsDir error:nil];
NSArray *onlyPics = [dirContents filteredArrayUsingPredicate:[NSPredicate predicateWithFormat:@"self ENDSWITH '.png'"]];

从Documents中删除一项

1、以删除air.mp4为例:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *documentsDirectory = [paths objectAtIndex:0]; 
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"air.mp4"];
BOOL succeed = [[NSFileManager defaultManager] removeItemAtPath:filePath error:nil];

2、有提示
NSFileManager *fileMgr = [[[NSFileManager alloc] init] autorelease];
NSError *error = nil;
NSArray *directoryContents = [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error];
if (error == nil) 
{
	for (NSString *path in directoryContents) 
	{
		NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:path];
		BOOL removeSuccess = [fileMgr removeItemAtPath:fullPath error:&error];
		if (!removeSuccess) 
		{
			// Error handling
			...
		}
	}
} 
else 
{
	// Error handling
	...
}

一、DMSP/OLS、NPP/VIIRS等夜间灯光数据能源碳排放空间化理论介绍 利用DMSP/OLS、NPP/VIIRS等夜间灯光数据开展能源碳排放空间化之前,需要区分与利用夜间灯光数据GDP空间化,两者操作流程并无较大区别,只是GDP空间化选择夜间灯光指数种类有比较多包括总灯光指数、平均灯光指数、综合灯光指数等,但是能源碳排放过程中通常只选择总灯光指数,其次能源碳排放空间化可能对于某些省份工业相对没有那么发达的区域,构建模型时候拟合效果比较差,也就是R方低一些或者显著性差。针对上述拟合度低的情况诸多学者前辈从多个方面开展研究进行提升。 阅读详情

相关推荐

ros2 humble中使用realsense t265与d435

前提,安装realsense SDK 2.51.1版本并且能成功启动realsense-viewer V2.51.1想要在ros2中使用realsense t265,必须配合realsense SDK v2.51.1使用realsense-ros 4.51.1版本,因为新版本realsense ros2不再对t265支持下面记录源码编译安装 realsense-ros 4.51.1版本。

m0_72797388的博客 951

获取frame 标签里#documents里面的内容

最近几天在爬一个网站,里面有frame标签。 今天有想获取frame标签下面#documents里面的内容,查了一晚上的资料,幸好找到,明天可以交差了。。。 一个有frame标签的网站,http://www.lmtw.com/search.php?show=title%2Ckeyboard%2Cwriter&searchget=1&keyboard=%E7%94%B5%E8%A...

master_ning的博客 3431

Python 爬虫:获取网页数据的 5 种方法

requests:适用于简单的静态网页抓取,易于使用。requestslxml:适合需要高效解析大规模网页内容的情况,支持 XPath 和 CSS 选择器。Selenium:适用于动态网页(JavaScript 渲染)的抓取,模拟浏览器行为获取动态数据。Scrapy:强大的爬虫框架,适合大规模的网页抓取任务,支持异步请求和高级功能。PyQuery:基于 jQuery 语法,适合快速开发,提供简洁的 CSS 选择器语法。

想看什么文章都可以私信给我,综合性博客。 5513

IOS中获取各种文件的目录路径的方法

iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library。 (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1、Documents 目录:您应该将所有de应用

better_dong的博客 1万+

从零构建:用Arduino和MCP2515模块搭建你的第一个CAN Bus网络

本文详细介绍了如何使用Arduino和MCP2515模块从零搭建CAN Bus网络,实现温湿度数据的传输与显示。涵盖硬件连接、软件配置、发送端与接收端代码实现,以及系统调试和进阶应用,帮助初学者快速掌握CAN总线通信技术。

d6e7f8的博客 831

分布式推理服务(策略:数据并行、张量并行、流水线并行、专家并行)技术分析

摘要:分布式推理突破单GPU内存和算力限制,支持大模型部署。四种核心策略包括: 数据并行:复制模型拆分数据,提升吞吐但内存效率低; 流水线并行:模型分阶段执行,支持超大模型但存在计算气泡; 张量并行:拆分层内矩阵运算,延迟低但通信开销大; 专家并行:动态激活MoE模型专家,计算高效但路由复杂。实际应用中常组合策略(如3D并行),需权衡模型规模、硬件条件与性能目标。

技术引领业务创新 940

qt iOS app 如何获取共享文件夹文件,如何使用document文档目录文件

how to get sharing document directory is something different with other qt platforms. IOS app always use files only in app's sandbox. So we just need to find it's sandbox directory. we may think fol

zhh_panan的博客 2081

StarRocks慢查询排查实战:从Query Plan到Profile的保姆级调优指南

本文提供StarRocks慢查询排查的实战指南,从Query Plan解析到Profile诊断,详细讲解如何识别执行计划中的危险信号和优化关键指标。通过物化视图优化、分布式执行调整和资源管控方案,帮助DBA快速定位并解决查询性能问题,提升数据库效率。

weixin_42568801的博客 378

IOS学习笔记22—文件操作(NSFileManager)结合相册小例子

这个示例程序主要用到了IOS中的UIImageView、UIImagePickerViewController、UIImage、NSFileManager等知识,结合这些知识构成一个小的应用程序,主要功能是对相册图片进行读取、存储到指定文件夹、从指定文件夹读取出来。这方面的知识在正式项目中用的是比较多的。做Android开发中,经常会使用到将图片保存到SD卡和从SD卡读取图片的操作,相比于Andr...

java开发指南博客 【转载】 181

AutoSAR_BSW高阶 7. Signal Group 信号组

Autosar BSW的高级配置是实现复杂汽车电子系统的关键步骤之一。通过合理配置信号组和使用适当的参数,您可以提高系统性能,确保数据的可靠传输。在本博客中,我们深入探讨了信号组的概念和高级配置参数,并提供了示例代码,希望这些信息能够帮助您更好地理解和应用Autosar BSW的高级配置。如果您在配置过程中遇到任何问题,不妨寻求专业支持,以确保您的汽车电子系统能够顺利运行。Autosar COM 模块是一个广泛应用于汽车行业的关键技术,它使不同的电子控制单元能够有效地通信和协作。

一直在水些技术小文 662

SIMULINK开发项目实例 1000 例专栏之第802例--基于电机驱动系统的场景实例:永磁同步电机(PMSM)在电动汽车中的矢量控制仿真

随着全球对环境保护的关注增加,电动汽车(Electric Vehicle, EV)因其环保特性而受到广泛关注。永磁同步电机(Permanent Magnet Synchronous Motor, PMSM)由于其高效率、高功率密度和良好的动态响应性能,在电动汽车驱动系统中得到了广泛应用。矢量控制(Field-Oriented Control, FOC)是实现PMSM高性能控制的关键技术之一,它能够实现对电机转矩和磁场的独立控制,从而达到类似直流电机的控制效果。本文将详细介绍如何使用来构建一个。

xiaoheshang_123的博客 267

iOS的四种方法读取文件内容

int main(int argc, const char * argv[]) {       @autoreleasepool     {         //第一种方法: NSFileManager实例方法读取数据         NSArray* paths = NSSearchPathForDirectoriesInDoma

bugall的专栏 6654

置顶必读(2) | 《YOLOv11实战:从入门到深度优化》目录导航篇(持续更新中)

🏆 本文收录于 《YOLOv11实战:从入门到深度优化》 专栏。 本专栏系统梳理并持续复现全网各类 YOLOv11 / YOLO系列改进方案与实战案例,目前已覆盖 分类、检测、分割、追踪、关键点、OBB 检测 等多个方向。 内容坚持 持续更新 + 深度拆解 + 工程落地导向,不仅讲“怎么改”,更讲“为什么这样改、如何真正落地到项目中”。

**My Coding Family** 11万+

Iphone文件处理——使用Documents文件夹

Documents文件夹是存储应用程序所用文件的地方,下面这个例子是向Documents文件夹添加一个txt文件并写入内容,然后读取这个文件的内容到屏幕上(在下面那幅图中,先在上面那个文本筐中输入内容,然后点击“点击保存到Documents文件夹中”按钮,这样就会将输入在文本筐中的内容保存到文件中,当点击“点击读取保存的文件内容”按钮时就会将文件中的内容显示在下面的文本标签中): 1.新建一个V

RiverAM的专栏 9793

SIMATIC S7-1200, S7-1500 PID 控制[手册]

SIMATIC S7-1200, S7-1500 PID 控制[手册]

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

iphone document 图片存储和读取

存: //此处首先指定了图片存取路径(默认写到应用程序沙盒 中) NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,NSUserDomainMask, YES); /...

chuhuangqiao1461的博客 288

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

iPhone 文件结构和文件操作

ps:请大家加群:ios开发讨论QQ群:73254416,验证信息请填写:优快云。有什么问题可以参与交流和讨论。 其实,关于文件操作,有一个核心的问题,就是你要先搞清楚文件是存放在哪里,沙盒,应用程序文件,还是远程Url下载类型,如果是图片数据还可能是相册。 不同的存放类型决定了不同的读取方式和写入方式。关于存储类型,请参考另一篇文章:iPhone图像存储的几种类型以及对应的读取方法。

程序人生 3292

IOS存储目录documents你在哪里啊

iphone沙箱模型的有四个文件夹,分别是什么,永久数据存储一般放在什么位置,得到模拟器的路径的简单方式是什么. documents,tmp,app,Library。 (NSHomeDirectory()), 手动保存的文件在documents文件里 Nsuserdefaults保存的文件在tmp文件夹里 1、Documents 目录:您应该将所有de应用程序数据文件写入到这个...

weixin_30315905的博客 1537

IOS iPhone 开发中的文件读写及数据存储(一)

数据的存储无疑是软件开发中的重要课题。本文给初学者介绍下iphone开发中常见的文件读写,当然,我也是初学者~ iOS的文件存储采用的是“沙箱机制”,也就是应用程序只能访问自己的文件目录,每个应用程序的数据是独立的,就像一个一个的沙箱一样。这种管理方法比windows和原来的塞班那种文件管理方式更适合移动平台。这种方式更安全,在很大程度上避免了流氓软件和垃圾软件的盗窃资料。 查看模拟器

lykxiaoxu的博客 303

iphone文件连接smb服务器,实用!三种iPhone与Windows电脑互传文件操作技巧,建议收藏...

如果你是苹果全家桶用户,一定会对 「AirDrop(隔空投送)」 功能赞誉有加,使用 AirDrop 可以在 iPhone 与 MacBook、iPad 等设备之间快速传递照片、视频或文件。遗憾的是,「AirDrop 仅限苹果设备之间使用」,而很多小伙伴应该和小兽一样,更习惯用 Windows 系统的电脑,没有了 AirDrop,我们可以用什么工具来快速传送文件呢?估计很多人日常是通过微信、QQ ...

weixin_32821043的博客 2万+

xcode编程中iphone的文件读写

对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox). 一个app发布到iPhone上后,它得目录结构如下: 1、其中得 app root 可以用 NSHomeDirectory() 访问到; 2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过: NSArray *paths = NSSearchPathForDi

taylor的专栏 1470

局域网传输文件_堪比AirDrop,苹果 iPhone与Windows电脑互传文件的三种方式

如果你是苹果全家桶用户,一定会对 「AirDrop(隔空投送)」 功能赞誉有加,使用 AirDrop 可以在 iPhone 与 MacBook、iPad 等设备之间快速传递照片、视频或文件。遗憾的是,「AirDrop 仅限苹果设备之间使用」,而很多小伙伴应该和小兽一样,更习惯用 Windows 系统的电脑,没有了 AirDrop,我们可以用什么工具来快速传送文件呢?估计很多人日常是通过微信、QQ ...

weixin_39569051的博客 6765

linux如何拷贝iphone文件夹,iPhone 文件读写 (资料参考)

对于一个运行在iPhone得app,它只能访问自己根目录下得一些文件(所谓sandbox).一个app发布到iPhone上后,它得目录结构如下:1、其中得 app root 可以用NSHomeDirectory() 访问到;2、Documents 目录就是我们可以用来写入并保存文件得地方,一般可通过:NSArray*paths =NSSearchPathForDirectoriesInDomai...

weixin_30453651的博客 319

iOS iPhone 开发中的文件读写及数据存储

数据的存储无疑是软件开发中的重要课题。本文给初学者介绍下iphone开发中常见的文件读写 iOS的文件存储采用的是“沙箱机制”,也就是应用程序只能访问自己的文件目录,每个应用程序的数据是独立的,就像一个一个的沙箱一样。这种管理方法比windows和原来的塞班那种文件管理方式更适合移动平台。这种方式更安全,在很大程度上避免了流氓软件和垃圾软件的盗窃资料。 查看模拟器应用程序在mac上的存

fuchenxuan blog 1054
上一篇: SQLite返回code和其他常量定义
下一篇: UIImage图片缩放到指定大小尺寸
马克的大菠萝
博客等级 码龄20年 40粉丝 41原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值