如题,模拟器和真机之间就文件的存储路径上还是有差别的,我遇到的问题如下:
当使用app路径存放时,真机不能永久存储文件,下次启动就没了,而模拟器即使在退出后下次还是能找到文件。
后来知道,文件存储的标准路径是document目录,例如:
补充:模拟器的路径是可以用mac的终端查看的,可是真机怎么查看就不知道了,如果有知道的达人麻烦告知我一下,谢谢。
真机:
/var/mobile/Applications/A1D90056-3DD0-4A4E-B679-487F656714CB/Documents/
模拟器:
/Users/drm/Library/Application Support/iPhone Simulator/5.1/Applications/0F0B2FDE-847A-4988-964A-746EC9313926/Documents/
而我使用的app路径是:
真机:
/var/mobile/Applications/A1D90056-3DD0-4A4E-B679-487F656714CB/***.app/
模拟器:
/Users/drm/Library/Application Support/iPhone Simulator/5.1/Applications/0F0B2FDE-847A-4988-964A-746EC9313926/***.app/
主要代码:
NSString *documentDirectory = [[NSBundle mainBundle]resourcePath];
NSLog(@"%@",[[NSBundle mainBundle]resourcePath]);
NSLog(@"%@",documentDirectory);
NSString *filePath = [documentDirectory stringByAppendingPathComponent:@"myfile"];
NSLog(@"%@",filePath);
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:filePath]) {
[fileManager createFileAtPath:filePath contents:nil attributes:nil];
}
NSData *fileData = [NSData dataWithBytes:Ptr length:Size];
[fileData writeToFile:filePath atomically:YES];
NSLog(@"fileData = %@",fileData);
这在真机中就不行了,需要使用documents路径才能持久化存储文件。
正确的代码如下:
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSLog(@"document paths = %@",documentsDirectory);
NSString *filePath = [documentsDirectory stringByAppendingPathComponent:@"myfile"];
NSLog(@"%@",filePath);
NSFileManager *fileManager = [NSFileManager defaultManager];
if ([fileManager fileExistsAtPath:filePath]) {
[fileManager createFileAtPath:filePath contents:nil attributes:nil];
}
NSData *fileData = [NSData dataWithBytes:Ptr length:Size];
[fileData writeToFile:filePath atomically:YES];
NSLog(@"save fileData = %@",fileData);
OK,一个奇怪的问题啊,路慢慢,继续探索。
分享到:
相关推荐
iOS 沙盒文件存储操作 iOS 沙盒机制是 iOS 应用程序的文件存储机制,它提供了一个安全的文件存储环境,保护应用程序的文件不被非法访问。iOS 应用程序只能在自己的沙盒目录中读取文件,不能访问其他应用程序的文件...
Unity3D IOS 下保存和读取资源(保存到文件夹目录) Unity3D 中在 IOS平台下保存和读取资源的方法是非常重要的。在 Unity 中,我们可以使用文件流来保存和读取资源,但是在 IOS 平台下,我们需要使用特殊的方法来...
本教程将详细讲解如何在uniapp中实现文件上传功能,特别是针对Android和iOS设备,以及如何处理不同类型的文件,如PDF、Word和TXT,并将它们转换为Base64编码。 首先,我们需要了解uniapp的基础。uniapp基于Vue.js,...
本文将深入探讨“ios-存储文件.zip”所包含的JJFileManager,一个用于管理iOS应用文件系统的工具,以及如何利用它来实现数据持久化。 JJFileManager是一个便捷的文件管理类库,它封装了iOS的文件操作接口,提供了更...
本篇将探讨“iOS数据保存-文件保存”这一主题,主要关注如何使用文件系统来存储数据。我们将讨论核心概念、常用方法以及最佳实践。 首先,iOS提供了多种方式来保存数据,包括NSUserDefaults、SQLite数据库、...
当Pages处理文件时,会将文件存储在相应的沙盒目录下,每个应用都有自己的沙盒,以确保应用间的数据隔离。 "iDevices RAW File System.pdf" 则可能涵盖了PDF文件在iOS中的存储和管理,包括如何在iOS设备上查看、...
在iOS开发中,读写本地文件是常见的任务,无论是在应用程序中存储用户数据,还是处理下载的资源。本文将深入探讨如何在iOS平台上进行文件的读取和写入操作,以便...不断实践和学习,才能在iOS文件操作上更加熟练。
Documents用于存储用户数据,Library/Preferences用于保存偏好设置(如.plist文件),tmp用于临时文件,Cache用于缓存数据。这些目录可以通过FileManager类进行访问和管理。 1. **数据写入**:在iOS中,可以使用`...
在iOS开发中,构建树状目录结构是一种常见的需求,特别是在数据组织和用户界面展示时。本文将详细讲解如何使用Objective-C(OC)语言来实现这一功能,同时结合SQLite数据库(如enzoDB.sqlite)的数据存储,以及用户...
下面将详细阐述这个Demo中涉及的iOS文件管理系统的关键知识点。 1. 文件系统基础:iOS设备使用基于Unix的文件系统,其中文件和目录以树形结构组织。每个应用程序都有自己的沙盒环境,包含Documents、Library、tmp和...
本教程将深入探讨三种主要的iOS存储方式:文件存储、SQLite数据库操作以及偏好设置(Preferences)。我们将通过提供的代码示例来理解这些技术的用法,并了解如何封装操作类以简化开发流程。 首先,我们来看偏好设置...
首先,我们要理解iOS文件系统的结构。iOS使用SQLite数据库来存储文件,并且每个应用都有自己的沙盒环境,包含了Documents、Library、tmp和tmp三个主要目录。开发者通常在Documents目录中存储用户数据,Library用于...
iOS CSV文件导出,保存 -(void)writeDict:(NSDictionary *)dict forFirst:(BOOL)first{ NSMutableString *str = [NSMutableString string]; //第一次写入字典的key值 if (first) { for (NSString *key in ...
IOS 下文件保存和读取 IOS 下文件保存和读取是指在 IOS 平台上对文件的保存和读取操作。下面将详细介绍 IOS 下文件保存和读取的知识点。 一、IOS 文件保存 在 IOS 平台上,文件保存通常使用 FileStream 对象来...
说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。 由于过程较为复杂,因此本文只贴出部分关键代码。 主控制器的关键代码: 代码如下:...
在iOS平台上实现一个文件管理器是一项复杂而富有挑战性的任务,因为iOS的沙盒机制对应用程序的文件访问有着严格的限制。然而,通过合理利用Apple...在实践中,不断学习和调试将是提升iOS文件管理器开发技能的重要途径。
使用TySimulator,开发者可以更高效地定位问题,尤其是在处理文件操作或存储问题时。这个开源项目不仅提高了调试效率,而且降低了调试过程的复杂性,对iOS开发者来说是一大福音。 总之,“TySimulator”是一个优秀...
- **tmp**:临时文件存储,应用在运行时创建并需要随时删除的文件。 3. **tmp**:存放临时文件,应用应负责清理。 三、`NSFileManager`与沙盒数据存储 在iOS中,使用`NSFileManager`处理沙盒数据时,需要注意以下...
在Xcode中,你可以看到一个.xcodeproj文件,它是项目设置和配置的存储库。此外,还可能有一个.xcworkspace文件,用于管理包含多个目标或子项目的工作区。 2. **Sources**:此目录通常包含所有源代码文件,按照功能...
LFS是一种扩展,它将大文件替换为指向存储在远程服务器上的文件的指针。在`.gitattributes`文件中,我们可以指定哪些文件类型应该由Git LFS来管理。例如: ``` *.png filter=lfs diff=lfs merge=lfs -text *.jpg ...