`
dingran
  • 浏览: 375073 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

ios 文件存储的目录问题

    博客分类:
  • ios
 
阅读更多

   如题,模拟器和真机之间就文件的存储路径上还是有差别的,我遇到的问题如下:

 

当使用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 应用程序的文件存储机制,它提供了一个安全的文件存储环境,保护应用程序的文件不被非法访问。iOS 应用程序只能在自己的沙盒目录中读取文件,不能访问其他应用程序的文件...

    Unity3D IOS下保存和读取资源(保存到文件夹目录).docx

    Unity3D IOS 下保存和读取资源(保存到文件夹目录) Unity3D 中在 IOS平台下保存和读取资源的方法是非常重要的。在 Unity 中,我们可以使用文件流来保存和读取资源,但是在 IOS 平台下,我们需要使用特殊的方法来...

    uniapp +上传文件+安卓、ios文件选择

    本教程将详细讲解如何在uniapp中实现文件上传功能,特别是针对Android和iOS设备,以及如何处理不同类型的文件,如PDF、Word和TXT,并将它们转换为Base64编码。 首先,我们需要了解uniapp的基础。uniapp基于Vue.js,...

    ios-存储文件.zip

    本文将深入探讨“ios-存储文件.zip”所包含的JJFileManager,一个用于管理iOS应用文件系统的工具,以及如何利用它来实现数据持久化。 JJFileManager是一个便捷的文件管理类库,它封装了iOS的文件操作接口,提供了更...

    IOS数据保存-文件保存

    本篇将探讨“iOS数据保存-文件保存”这一主题,主要关注如何使用文件系统来存储数据。我们将讨论核心概念、常用方法以及最佳实践。 首先,iOS提供了多种方式来保存数据,包括NSUserDefaults、SQLite数据库、...

    iOS原生文件系统解析.zip

    当Pages处理文件时,会将文件存储在相应的沙盒目录下,每个应用都有自己的沙盒,以确保应用间的数据隔离。 "iDevices RAW File System.pdf" 则可能涵盖了PDF文件在iOS中的存储和管理,包括如何在iOS设备上查看、...

    读写ios的文件

    在iOS开发中,读写本地文件是常见的任务,无论是在应用程序中存储用户数据,还是处理下载的资源。本文将深入探讨如何在iOS平台上进行文件的读取和写入操作,以便...不断实践和学习,才能在iOS文件操作上更加熟练。

    iOS本地文件操作

    Documents用于存储用户数据,Library/Preferences用于保存偏好设置(如.plist文件),tmp用于临时文件,Cache用于缓存数据。这些目录可以通过FileManager类进行访问和管理。 1. **数据写入**:在iOS中,可以使用`...

    ios实现树目录

    在iOS开发中,构建树状目录结构是一种常见的需求,特别是在数据组织和用户界面展示时。本文将详细讲解如何使用Objective-C(OC)语言来实现这一功能,同时结合SQLite数据库(如enzoDB.sqlite)的数据存储,以及用户...

    ios-文件管理.zip

    下面将详细阐述这个Demo中涉及的iOS文件管理系统的关键知识点。 1. 文件系统基础:iOS设备使用基于Unix的文件系统,其中文件和目录以树形结构组织。每个应用程序都有自己的沙盒环境,包含Documents、Library、tmp和...

    iOS存储(文件存储,sqlite数据库操作)

    本教程将深入探讨三种主要的iOS存储方式:文件存储、SQLite数据库操作以及偏好设置(Preferences)。我们将通过提供的代码示例来理解这些技术的用法,并了解如何封装操作类以简化开发流程。 首先,我们来看偏好设置...

    IOS获取文件、目录所占空间大小

    首先,我们要理解iOS文件系统的结构。iOS使用SQLite数据库来存储文件,并且每个应用都有自己的沙盒环境,包含了Documents、Library、tmp和tmp三个主要目录。开发者通常在Documents目录中存储用户数据,Library用于...

    IOS下文件保存和读取2

    IOS 下文件保存和读取 IOS 下文件保存和读取是指在 IOS 平台上对文件的保存和读取操作。下面将详细介绍 IOS 下文件保存和读取的知识点。 一、IOS 文件保存 在 IOS 平台上,文件保存通常使用 FileStream 对象来...

    iOS开发中文件的上传和下载功能的基本实现

    说明:文件上传使用的时POST请求,通常把要上传的数据保存在请求体中。本文介绍如何不借助第三方框架实现iOS开发中得文件上传。  由于过程较为复杂,因此本文只贴出部分关键代码。 主控制器的关键代码: 代码如下:...

    IOS 下实现文件管理器

    在iOS平台上实现一个文件管理器是一项复杂而富有挑战性的任务,因为iOS的沙盒机制对应用程序的文件访问有着严格的限制。然而,通过合理利用Apple...在实践中,不断学习和调试将是提升iOS文件管理器开发技能的重要途径。

    调试神器 - 快速访问调试中 iOS 应用内文件系统 Documents, Media 等目录及文件.zip

    使用TySimulator,开发者可以更高效地定位问题,尤其是在处理文件操作或存储问题时。这个开源项目不仅提高了调试效率,而且降低了调试过程的复杂性,对iOS开发者来说是一大福音。 总之,“TySimulator”是一个优秀...

    ios沙盒数据存储

    - **tmp**:临时文件存储,应用在运行时创建并需要随时删除的文件。 3. **tmp**:存放临时文件,应用应负责清理。 三、`NSFileManager`与沙盒数据存储 在iOS中,使用`NSFileManager`处理沙盒数据时,需要注意以下...

    IOS项目目录结构

    在Xcode中,你可以看到一个.xcodeproj文件,它是项目设置和配置的存储库。此外,还可能有一个.xcworkspace文件,用于管理包含多个目标或子项目的工作区。 2. **Sources**:此目录通常包含所有源代码文件,按照功能...

    iOS开发文件相关的操作.zip

    在iOS开发中,文件管理是应用的基本功能之一,它涉及到数据的存储、读取和更新。...同时,学习过程中也应关注性能优化,比如合理选择存储路径,避免频繁读写导致的性能问题,以及正确处理文件权限等。

    iOS git 配置文件

    LFS是一种扩展,它将大文件替换为指向存储在远程服务器上的文件的指针。在`.gitattributes`文件中,我们可以指定哪些文件类型应该由Git LFS来管理。例如: ``` *.png filter=lfs diff=lfs merge=lfs -text *.jpg ...

Global site tag (gtag.js) - Google Analytics