ios目录分析main
iOS开发总结——项目目录结构
iOS开发总结——项⽬⽬录结构1.前⾔清晰的项⽬⽬录结构有利于项⽬的开发,同时也是软件架构的⼀部分,所以,项⽬开发之初搭建项⽬的⽬录结构很重要。
刚转iOS时,⾃⼰并不知道如何搭建App的项⽬⽬录,在参与开发两个应⽤后,结合Web开发的⽬录习惯我整理了⾃⼰的⽬录结构。
分享⼀下,欢迎交流。
2.我的项⽬⽬录结构项⽬⽬录├── ThirdLib(三⽅库)│├── SDWebImage│└── AFNetworking├── Framework(⾃⼰封装的类库)├── General(通⽤类⽬录)│├── Class(通⽤的类,⽐如⾃定义⽗类)│└── Helper(通⽤辅助⽅法)├── Main(程序单⼀⼊⼝,仅放AppDelegate区分其他⽂件)│├── AppDelegate.h│└── AppDelegate.m├── Model(数据模型类⽬录)│├── Macro(宏定义⽬录)│├── BLL(业务逻辑层⽬录)│├── DAL(数据访问层⽬录)│├── Entity(⾃定义实体⽬录)│├── Request(⽹络请求类⽬录)│├── Location(定位服务类⽬录)│└── Socket(Socket类⽬录)├── Module(功能模块⽬录)│││├─── ModuleA││├── ViewControllerA.h(视图控制器头⽂件)││└── ViewControllerA.m(视图控制器m⽂件)│├── ModuleB│├── ModuleC│├── ModuleD│└── ModuleE└── View(视图类⽬录)└── MyTestView3.说明1)项⽬⽬录项⽬程序⽂件根⽬录,存放项⽬程序⽂件、资源⽂件等。
2)ThirdLib第三⽅开源类库,⽐如,SDWebImage、AFNetworking等。
3)Framework⾃⼰封装的类库。
4)General通⽤类⽬录,存放⾃定义的视图控制器基类等。
iOS开发——高级篇——iOS项目的目录结构
iOS开发——⾼级篇——iOS项⽬的⽬录结构最近闲来⽆事去⾯试⼀下iOS开发,让我感到吃惊的,⾯试官竟然问怎么分⽬录结构,还具体问每个⼦⽬录的⽂件名。
⽬录结构确实⾮常重要,⾯试官这么问,⽆疑是想窥探开发经验。
清晰的⽬录结构,可让⼈⼀眼明⽩相应的业务和职能,这也能体现开发者的经验和架构⽔平。
⽬前,我接触过的项⽬中,⽐较常规的两种结构:1.主⽬录按照业务分类,内⽬录按照模块分类(主⽬录按照MVC架构分类,内部根据项⽬模块分类)优点:相对⽐较快定位对应的业务。
缺点:模块相关类太过分散,需要来回切换寻找⽂件,不⽅便开发。
2.主⽬录按照模块分类,内⽬录按照业务分类优点:对模块的类集中化,⽅便管理与开发。
缺点:当⼏个模块共⽤⼀些类时,不太好归类。
假设对简书iOS应⽤⽬录分类(⾮官⽅):1.主⽬录按照业务分类,内⽬录按照模块分类2.主⽬录按照模块分类,内⽬录按照业务分类注意: 以上两种分类不是绝对的,具体还得按照业务需求去归类。
如果公司多项⽬的话(指外包公司,哈~),可以尝试按照⾃⼰的逻辑去归类,或可以多观察下⾝边⼤⽜搭建的项⽬,会吸取到其中的奥秘。
代码也⼀样,多看看⼤神写的,甚⾄可以直接模仿⼤神的代码风格,别⼈也会把你当做⼤神!ps:有评论说,⽬录备注中⽂名感觉就lo了。
确实开发中,⼀些⾮常有经验的程序员,不会这么⼲,甚⾄在代码中也很少中⽂注释。
但个⼈觉得,普通或中⾼级⼯程师真滴很有必要多些注释,由于经验少,变量和⽅法名可能都命名不好,很多⽤googl翻译直译,甚⾄⾃⼰到审查代码时都不能直译出来。
多谢注释好处就是就算你看不懂我写的代码,也⼀定能让你知道这是⼲什么滴(万不得⼰时,哈~),⽅便⾃⼰也⽅便别⼈!最后,⽬录没有真正的好坏之分,只要适⽤于⾃⼰的业务,就是好的⽬录!。
Xcode中iOS应用开发的一般项目目录结构和流程简介
Xcode中iOS应⽤开发的⼀般项⽬⽬录结构和流程简介项⽬所需的平台路径1.开发平台路径:/Developer/Platforms此路径下⼀般有三个⽬录,分别是mac电脑、模拟器、iphone真机MacOSX.platformiPhoneSimulator.platformiPhoneOS.platform每个⽬录下都有⼀个/Developer/usr/bin⽬录,放置开发中需要的程序总的⽬录⽐如:/Developer/Platforms/*/Developer/usr/bin/注意:*代表上⾯上个⽬录中的⼀个,具体是哪个看⽬标平台的需求2.模拟器路径:/Developer/Platforms/iPhoneSimulator.platform/Developer/Applications⾥⾯有模拟器的可执⾏⽂件iPhone Simulator.app3.sdk路径:真机:/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk模拟器:/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.0.sdk4. app路径真机:/var/mobile/Applications/4434-4453A-B453-4ADF4535345ADAF344 后⾯的⽬录4434-4453A-B453-4ADF4535345ADAF344是iphone⾃动⽣成的,⾥⾯的⽂件或⽬录包括: (1)app⽬录 test.app (2)⽂档⽬录 Documents (3)库⽬录 Library (4)临时⽬录 tmp Documents⽬录,可以放置⽤户保存的数据,可以同步到icould Library⽬录,包括:缓存⽬录Caches,⽤户偏好⽬录Preferences(存放NSUserDefaults保存的.plist)项⽬⽬录结构和开发流程⽬录结构AppDelegateModelsMacroGeneralHelpersVendorsSectionsResources⼀个合理的⽬录结构⾸先应该是清晰的,让⼈⼀眼看上去就能⼤概了解⽬录的职责,且容易应对新的变化。
iPhone系统文件路径总结
iPhone系统文件路径总结系统界面图标位置:计算器:/Applications/Calculator.app/icon.png日历:/Applications/MobileCal.app/icon.png相机:/Applications/MobileSlideShow.app/icon-Camera.png时钟:/Applications/MobileTimer.app/icon.pngiPod播放器:/Applications/MobileMusicPlayer.app/icon.pngiTunes Music Store 音乐商店:/Applications/MobileStore.app/icon.png电子邮件:/Applications/MobileMail.app/icon.png记事本:/Applications/MobileNotes.app/icon.pngGoogle地图:/Applications/Maps.app/icon.png电话:/Applications/MobilePhone.app/icon.png相册:/Applications/MobileSlideShow.app/icon-Photos.png网页浏览器:/Applications/MobileSafari.app/icon.png设置:/Applications/Preferences.app/icon.png股票:/Applications/Stocks.app/icon.png短消息:/Applications/MobileSMS.app/icon.png天气:/Applications/Weather.app/icon.pngYouTube:/Applications/YouTube.app/icon.png------------------------------------ 我是分割线-------------------------------------------Apple logo (系统启动):/System/Library/CoreServices/SpringBoard.app/applelogo.png(这个图标就是大家都知道的白苹果,一般只显示几秒,你可能不能完全替换它,因为它在ROM 内还有。
iPhone 文件目录功能详解
Bottombarknobred.png(关机滑块 图标)
bottombarbkgndlock(待机解锁滑块背景)
bottombarlocktextmask(待机解锁滑条背景)
解锁滑条图标路径:
【/System/Library/PrivateFrameworks/TelephonyUI.framework】
13. 【/private/var/mobile/Media/Wikipedia/】
14. 【/System/Library/Frameworks/UIKit.framework和/System/Library/PrivateFrameworks/AppSupport.framework】
【/System/Library/Fonts/Cache】
文件名:LockClock.ttf
待机时间背景路径:
【/System/Library/Frameworks/UIKit.framework】
11. 【/private/var/stash/Themes.XXXXXX】
winterboard主题文件存放路径。
12. 【/private/var/mobile/Media/DCIM/999APPLE】
系统自带截屏文件存放路径,截屏方法:按住Power并快速按一下Home键。
15、【/private/var/run】
系统进程运行的临时目录?(查看这里可以看到系统启动的所有进程)。
16、【/private/var/logs/CrashReporter】
系统错误记录报告。
iPhone应用与界面相关
电话界面:
【/Applications/MobilePhone.app/】
iOS中判断沙盒文件或者目录是否存在以及判断是文件还是目录的一个隐藏问题
iOS6.1 & iOS 7 & iOS8判断沙盒文件或者目录是否存在,以及判断是文件还是目录的一个隐藏问题- (BOOL)fileExistsAtPath:(NSString *)path isDirectory:(BOOL *)isDirectory通常,iOS系统中判断文件或者目录是否存在,可以用上面这个API。
第二个参数 isDirectory是个传出参数,用于返回,是文件还是目录。
一般两种情况会使用这个API需求一、判断文件或者目录是否存在需求二. 判断path是文件还是目录需求一、只要判断这个API的返回值,YES为存在,NO为不存在即可,isDirectory不需要判断因为当传入参数 path不存在时, isDirectory返回的是 undefined,如果不想要判断是否目录,这个参数可传NULL。
纵观网上的例子,判断文件或者目录是否存在时,同时也会判断这个参数的BOOL值。
其实是错误的,因为还有第三个值 undefined。
isDirectoryUpon return, contains YES if path is a directory or if the final path element is a symbolic link that points to a directory, otherwise contains NO. If path doesn’t exist, this value is undefined upon return. Pass NULL if you do not need this information.尤其有意思的是,当path看起来像是一个目录字符串时, iOS6和7和8,isDirectory返回的值不同。
iOS 6.1对这个的undefined,判断为NO,而iOS7和8,返回YES这个问题导致,如果使用isDirectory,在iOS6.1的系统中,是无法判断一个不存在 path,它是一个文件或者文件夹。
XCODE中IOS项目文件类型及其作用的介绍
XCODE中IOS项目文件类型及其作用的介绍
2021-04-1616:45:40| 分类:ios| 标签:应用程序文件
夹frameworks 文件类型ios |举报|字号订阅
1.在prodouts文件里面的.app文件----为可执行(应用程序)文件;
2.根目录下的.pch文件----为项目的所有文件的头文件;
3.在classes文件夹里的后缀为delegate.h文件----应用程序委派的头文件
(声明文件);
4.在classes文件夹里的后缀为delegate.m文件----应用程序委派的可执行文
件(定义文件);
5.在resources文件夹里面的.xib文件----应用程序的ui(用户界面);
6.在frameworks文件夹下的coregraphics.framework文件----基于c的api,
基于2d的底层绘图;
7.在frameworks文件夹下的foundation.framework文件----最基础的系统服务api,提供像数据类型,xml,url等服务;
8.在frameworks文件夹下的uikit.framework文件----最基础的一个类,用作
管理ui结构;
9.在resources文件夹里的.plist文件----一个类似于properties文件,这个
文件包含了关于应用程序的name,icon等基本信息;
10.在othersources文件夹里的main.m----一个主文件用作鼓励ipad应用程序;
11.在resource文件里面有一个mainwindow.xib----主窗口ui;。
IOS获取各种文件目录路径的方法
IOS获取各种⽂件⽬录路径的⽅法iphone沙箱模型有四个⽂件夹,分别是什么,永久数据存储⼀般放在什么位置,得到模拟器的路径的简单⽅式是什么. documents,tmp,app,Library。
(NSHomeDirectory()),⼿动保存的⽂件在documents⽂件⾥Nsuserdefaults保存的⽂件在tmp⽂件夹⾥1、Documents ⽬录:您应该将所有de应⽤程序数据⽂件写⼊到这个⽬录下。
这个⽬录⽤于存储⽤户数据或其它应该定期备份的信息。
2、AppName.app ⽬录:这是应⽤程序的程序包⽬录,包含应⽤程序的本⾝。
由于应⽤程序必须经过签名,所以您在运⾏时不能对这个⽬录中的内容进⾏修改,否则可能会使应⽤程序⽆法启动。
3、Library ⽬录:这个⽬录下有两个⼦⽬录:Caches 和 PreferencesPreferences ⽬录:包含应⽤程序的偏好设置⽂件。
您不应该直接创建偏好设置⽂件,⽽是应该使⽤NSUserDefaults类来取得和设置应⽤程序的偏好.Caches ⽬录:⽤于存放应⽤程序专⽤的⽀持⽂件,保存应⽤程序再次启动过程中需要的信息。
4、tmp ⽬录:这个⽬录⽤于存放临时⽂件,保存应⽤程序再次启动过程中不需要的信息。
获取这些⽬录路径的⽅法:第⼀种⽅式:获取家⽬录路径的函数:NSString *homeDir = NSHomeDirectory();第⼆种⽅式:获取Documents⽬录路径的⽅法:NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *docDir = [paths objectAtIndex:0];第三种⽅式:获取Caches⽬录路径的⽅法:NSArray *paths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);NSString *cachesDir = [paths objectAtIndex:0];第四种⽅式:获取tmp⽬录路径的⽅法:NSString *tmpDir = NSTemporaryDirectory();第五种⽅式:获取应⽤程序程序包中资源⽂件路径的⽅法:例如获取程序包中⼀个图⽚资源(apple.png)路径的⽅法:NSString *imagePath = [[NSBundle mainBundle] pathForResource:@”apple” ofType:@”png”];UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath];代码中的mainBundle类⽅法⽤于返回⼀个代表应⽤程序包的对象。
ios文件管理的数据结构和算法
ios文件管理的数据结构和算法iOS文件管理的数据结构和算法在iOS系统中,文件管理是一项重要的功能,它涉及到文件的创建、读取、写入、复制、删除等操作。
实现一个高效的文件管理系统需要合理选择数据结构和算法,以提高文件操作的效率和用户体验。
一、数据结构1. 目录树(Directory Tree)目录树是一种常用的数据结构,用于表示文件系统中的目录结构。
在iOS系统中,文件和文件夹被组织成一个层次化的结构,目录树可以很好地表示这种关系。
每个节点表示一个文件或文件夹,节点之间通过父子关系连接。
目录树的根节点表示文件系统的根目录。
2. 哈希表(Hash Table)哈希表是一种常用的数据结构,用于快速查找和存储数据。
在iOS 文件管理中,可以使用哈希表来存储文件的元数据,如文件名、大小、创建时间等。
通过将文件名作为键,可以快速定位到对应的文件元数据,提高文件的查找效率。
3. 链表(Linked List)链表是一种常用的数据结构,用于存储和管理文件列表。
在iOS文件管理中,可以使用链表来存储当前目录下的文件列表。
链表的节点包含文件的元数据,通过节点之间的指针关系可以遍历和操作文件列表。
二、算法1. 深度优先搜索(Depth-First Search)深度优先搜索是一种常用的算法,用于遍历目录树。
在iOS文件管理中,可以使用深度优先搜索算法来遍历文件系统的目录结构,实现文件的查找、复制、删除等操作。
2. 广度优先搜索(Breadth-First Search)广度优先搜索是一种常用的算法,用于遍历目录树。
在iOS文件管理中,可以使用广度优先搜索算法来遍历文件系统的目录结构,实现文件的查找、复制、删除等操作。
与深度优先搜索不同的是,广度优先搜索按层次遍历目录树,可以更快地找到目标文件。
3. 哈希算法(Hash Algorithm)哈希算法是一种常用的算法,用于计算文件的哈希值。
在iOS文件管理中,可以使用哈希算法来验证文件的完整性,防止文件被篡改。
iOS底层基础知识-文件目录结构
iOS底层基础知识-⽂件⽬录结构⼀:iOS沙盒知识出于安全考虑,iOS系统把每个应⽤以及数据都放到⼀个沙盒(sandbox)⾥⾯,应⽤只能访问⾃⼰沙盒⽬录⾥⾯的⽂件、⽹络资源等(也有例外,⽐如系统通讯录、照相机、照⽚等能在⽤户授权的情况下被第三⽅应⽤访问)1:MyApp.app该⽬录包含了应⽤程序本⾝的数据,程序打包的时候的资源⽂件和⼀些本地⽂件就是存放在这个⽬录下的。
程序的可执⾏程序、plist⽂件也在这个⽬录下。
这个⽬录不会被iTunes同步2:Documents使⽤这个⽬录来保存关键数据。
关键数据指那些应⽤不可再⽣的数据。
这个⽬录会被iTunes同步3:Library⽤来保存⼀些配置⽂件和其他⼀些⽂件。
其中使⽤NSUserDefaults写的设置数据都会保存到Library/Preferences⽬录下的⼀个plist⽂件中。
Library/Caches可以⽤来保存可再⽣的数据,⽐如⽹络请求,⽤户需要负责删除对应⽂件。
这个⽬录(除了Library/Caches外)会被iTunes同步4:tmp使⽤这个⽬录来保存各种应⽤下次启动不再需要的临时⽂件。
当应⽤不再需要这些⽂件的时候,需要主动将其删除。
(当应⽤不再运⾏的时候,系统可能会将此⽬录清空。
)这个⽬录不会被iTunes同步获取主要⽬录路径的⽅式沙盒⽬录NSLog(@"%@",NSHomeDirectory());MyApp.appNSLog(@"%@",[[NSBundle mainBundle] bundlePath]);tmpNSLog(@"%@",NSTemporaryDirectory());DocumentsNSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);NSString *docPath = [paths objectAtIndex:0];NSLog(@"%@",docPath);LibraryNSArray *paths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES);NSString *libPath = [paths objectAtIndex:0];NSLog(@"%@",libPath);⼆:iPhone ⼿机⽂件⽬录介绍:1、【/Applications】常⽤软件的安装⽬录2. 【/private /var/ mobile/Media /iphone video Recorder】iphone video Recorder录像⽂件存放⽬录3、【/private /var/ mobile/Media /DCIM】相机拍摄的照⽚⽂件存放⽬录4、【/private/var/ mobile /Media/iTunes_Control/Music】iTunes上传的多媒体⽂件(例如MP3、MP4等)存放⽬录,⽂件没有被修改,但是⽂件名字被修改了,直接下载到电脑即可读取。
iPhone各种文件路径详解
文件名:LockClock.ttf
待机时间背景路径:
/System/Library/Frameworks/UIKit.framework
文件名:Other.artwork
农历路径:
/private/var/mobile/Library/Calendar
16、【/private/var/logs/CrashReporter】
系统错误记录报告
电话界面
/Applications/MobilePhone.app/
软件目录路径:
/Applications
字体路径:
System\Library\Fonts\Cache
3. /private/var/stash 这个文件夹下的Applications目录里面是所有通过Cydia和app安装的程序,Ringtones目录里是所有的手机铃音,自制铃音直接拷在里面即可,Themes目录里是所有Winterboard主题,可以手工修改。
4. /private/var/mobile/Media/ROMs/GBA gpsPhone模拟器存放rom的目录。
13. /private/var/mobile/Media/Wikipedia/
14. /System/Library/Frameworks/UIKit.framework和/System/Library/PrivateFrameworks/AppSupport.framework(这两个都是电话号码显示规则文件存放路径,有关完美显示电话号码和短信号码
(wav铃声扩展名可以改为caf)
电子书目录路径:
/private/var/mobile/Media/EBooks
MAc OS X系统深入了解--系统文件结构篇
【转】MAc OS X系统深入了解--系统文件结构篇OS X采用的是类UNIX的多用户系统。
通常我们在启动盘下面都只能看到应用程序、资源库、系统、用户这4个目录。
但其实还有很多的隐藏目录,如bin、sbin之类的,这些都是系统的一些资源,一般是不用普通用户去访问,是些比较重要的系统文件及配置文件。
所以我这里就只是探讨一下通常在Finder中可以触及的文件项目和资源。
首先我们来了解一下OS X系统的几大组成部分:文件系统区域:作为了一个多用户的操作系统,控制系统资源的访问对于保证系统的稳定性是非常重要的。
通过目录的设置,由当前用户的操作权限来决定该用户对每部分资源的访问。
在OS X系统中,存在以下4个文件系统区域:User:这个区域包含了登录到系统的用户可供使用的特定资源。
该区域由用户的主目录来定义,在这个区域中,用户具有完全的控制权限。
Local: Local区域包括如文件、程序这些被系统中所有用户共享的资源,但它不是系统运行所必须的。
Local区域没有一个相应的单独的目录,它包含于启动卷宗的多个目录中。
具有系统管理员权限的用户可以添加、删除或修改此区载的项目。
Network:此区域包含了本地局域网中可被所有用户共享的资源,如文件或应用程序。
该区域的代表项目在网络文件服务中的位置,并受网络管理员的控制。
System:包含由Apple安装的系统软件。
这此资源是系统正常运行所必须的,位于启动卷宗中,在该区域中,用户不允许添加、删除或更改这些资源。
用户区域包含指定给一个单独的用户的资源。
由当前用户的个人目录来表示。
每个Mac OS X系统用户必须有一个账号,在文件系统中给每个用户账号指定一个目录空间。
目录中包括了用户的应用程序、资源以及文档。
用户个人目录以用户账号的短名称来命名,并且是唯一的。
用户区域可以让用户为自己定义一个合理的工作环境,当用户登录时,Finder将恢复用户的工作环境,并按预置设置为用户上次使用时的状态。
iOS中获取各种文件的目录路径的方法
iOS中获取各种⽂件的⽬录路径的⽅法我们的app在⼿机中存放的路径是:/var/mobile/Applications/4434-4453A-B453-4ADF535345ADAF344后⾯的⽬录4434-4453A-B453-4ADF535345ADAF344是iPhone⾃动⽣成的,⾥⾯包含了四个⽂件夹:(1)AppName.app ⽬录:这是应⽤程序的程序包⽬录,包含应⽤程序本⾝。
由于应⽤改程序必须经过签名。
所以再运⾏程序时,是不可以对这个⽬录进⾏内容修改的,否则会造成应⽤⽆法启动。
(2)Documents⽬录:这是⽂档⽬录。
有关应⽤的所有数据⽂件应该写⼊到这个⽬录下,这个⽬录⽤于存储⽤户数据或者其他应该定期备份的信息。
iTunes会同步改应⽤程序的此⽂件内容,适合存储⼀些重要的数据(3)Libarary⽬录:库⽬录,这个⽬录下⾯还有两个⼦⽬录:Caches 和 PreferencesPreferences ⽬录:包含应⽤程序的编号设置⽂件,存放NSUserDefaults保存的.plist⽂件。
iTunes同步该应⽤时会同步该⽂件夹中的内容。
Caches ⽬录:缓存⽬录。
⽤于存储应⽤程序专⽤的⽀持⽂件,保存应⽤程序再次启动过程中需要的信息。
ITunes不会同步改⽂件夹,保存⼀些不需要备份的数据(4)tmp⽬录:临时⽬录。
这个⽬录⽤于存放临时⽂件,保存应⽤程序再次启动过程中不再需要的信息。
iTunes不会同步此⽂件夹,系统可能在应⽤没运⾏时就删除该⽬录下的⽂件,所以此⽬录适合保存应⽤中的⼀些临时⽂件,⽤完就删除。
下⾯就是这些⽂件夹获取路径的⽅法:1.获取AppName.app ⽬录路径:NSString *path = [[NSBundle mainBundle] bundlePath];2.获取Documents⽬录路径的⽅法:NSString *documentPath = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES).firstObject; 3.Library/Caches⽬录路径⽅法:NSString *cachePath = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES).firstObject;4.Library/Application Support⽬录路径⽅法:[NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) objectAtIndex:0]4.tmp⽬录路径的⽅法:NSString *tmpPaht = NSTemporaryDirectory();5.获取沙盒主⽬录路径NSString *homePaht = NSHomeDirectory();例⼦:NSFileManager* fm=[NSFileManager defaultManager];if(![fm fileExistsAtPath:[self dataFilePath]]){//下⾯是对该⽂件进⾏制定路径的保存[fm createDirectoryAtPath:[self dataFilePath] withIntermediateDirectories:YES attributes:nil error:nil];//取得⼀个⽬录下得所有⽂件名NSArray *files = [fm subpathsAtPath: [self dataFilePath] ];//读取某个⽂件NSData *data = [fm contentsAtPath:[self dataFilePath]];//或者NSData *data = [NSData dataWithContentOfPath:[self dataFilePath]];}1、常见的NSFileManager⽂件⽅法-(NSData *)contentsAtPath:path //从⼀个⽂件读取数据-(BOOL)createFileAtPath: path contents:(NSData *)data attributes:attr //向⼀个⽂件写⼊数据-(BOOL)removeItemAtPath:path error:err //删除⼀个⽂件-(BOOL)moveItemAtPath:from toPath:to error:err //重命名或者移动⼀个⽂件(to不能是已存在的)-(BOOL)copyItemAtPath:from toPath:to error:err //复制⽂件(to不能是已存在的)-(BOOL)contentsEqualAtPath:path andPath:path2 //⽐较两个⽂件的内容-(BOOL)fileExistAtPath:path //测试⽂件是否存在-(BOOL)isReadableFileAtPath:path //测试⽂件是否存在,并且是否能执⾏读操作 -(BOOL)isWriteableFileAtPath:path //测试⽂件是否存在,并且是否能执⾏写操作 -(NSDictionary *)attributesOfItemAtPath:path error:err //获取⽂件的属性 -(BOOL)setAttributesOfItemAtPath:attr error:err //更改⽂件的属性2.使⽤⽬录-(NSString *)currentDirectoryPath //获取当前⽬录-(BOOL)changeCurrentDirectoryPath:path //更改当前⽬录-(BOOL)copyItemAtPath:from toPath:to error:err //复制⽬录结构(to不能是已存在的)-(BOOL)createDirectoryAtPath:path withIntermediateDirectories:(BOOL)flag attribute:attr //创建⼀个新⽬录-(BOOL)fileExistAtPath:path isDirectory:(BOOL*)flag //测试⽂件是不是⽬录(flag中储存结果YES/NO)-(NSArray *)contentsOfDirectoryAtPath:path error:err //列出⽬录内容-(NSDirectoryEnumerator *)enumeratorAtPath:path //枚举⽬录的内容-(BOOL)removeItemAtPath:path error:err //删除空⽬录-(BOOL)moveItemAtPath:from toPath:to error:err //重命名或移动⼀个⽬录(to不能是已存在的)3、常⽤路径⼯具⽅法+(NSString *)pathWithComponens:components //根据components中的元素构造有效路径-(NSArray *)pathComponents //析构路径,获得组成此路径的各个部分-(NSString *)lastPathComponent //提取路径的最后⼀个组成部分-(NSString *)pathExtension //从路径的最后⼀个组成部分中提取其扩展名-(NSString *)stringByAppendingPathComponent:path //将path添加到现有路径的末尾-(NSString *)stringByAppendingPathExtension:ext //将指定的扩展名添加到路径的最后⼀个组成部分-(NSString *)stringByDeletingLastPathComponent //删除路径的最后⼀个组成部分-(NSString *)stringByDeletingPathExtension //从⽂件的最后⼀部分删除扩展名-(NSString *)stringByExpandingTileInPath //将路径中代字符扩展成⽤户主⽬录(~)或指定⽤户的主⽬录(~user)-(NSString *)stringByresolvingSymlinksInPath //尝试解析路径中的符号链接-(NSString *)stringByStandardizingPath //通过尝试解析~、..(⽗⽬录符号)、.(当前⽬录符号)和符号链接来标准化路径4、常⽤的路径⼯具函数NSString* NSUserName(void) //返回当前⽤户的登录名NSString* NSFullUserName(void) //返回当前⽤户的完整⽤户名NSString* NSHomeDirectory(void) //返回当前⽤户主⽬录的路径NSString* NSHomeDirectoryForUser(NSString* user) //返回⽤户user的主⽬录NSString* NSTemporaryDirectory(void) //返回可⽤于创建临时⽂件的路径⽬录5、常⽤的IOS⽬录Documents(NSDocumentDirectory) //⽤于写⼊应⽤相关数据⽂件的⽬录,在ios中写⼊这⾥的⽂件能够与iTunes共享并访问,存储在这⾥的⽂件会⾃动备份到云端Library/Caches(NSCachesDirectory) //⽤于写⼊应⽤⽀持⽂件的⽬录,保存应⽤程序再次启动需要的信息。
RoadMapiOSCh
RoadMapiOSCh马上着⼿开发 iOS 应⽤程序 (Start Developing iOS Apps Today)⽬录介绍6设置7获取⼯具8教程:基础9创建新项⽬10熟悉 Xcode12运⾏ iOS Simulator13检查源代码15创建串联图18将场景添加到串联图中20测试更改24构建基本界⾯24⼩结29构建应⽤程序30应⽤程序开发过程31定义概念31设计⽤户界⾯32定义交互32实现⾏为33对象是应⽤程序的基⽯33类是对象的蓝图33对象通过消息通信34协议定义消息发送契约34整合数据35使⽤正确的资源35整合真实的数据35设计⽤户界⾯36视图层次36使⽤视图构建界⾯37使⽤串联图来布局视图38使⽤检查器来配置视图39使⽤ Auto Layout 来定位视图40定义交互41视图控制器41操作 (Action)42Outlet42控制 (Control)43导航控制器43使⽤串联图来定义导航44教程:串联图46采⽤ Auto Layout47创建第⼆场景49在表格视图中显⽰静态内容51添加过渡以向前浏览52创建⾃定视图控制器60跳转过渡以返回63⼩结65应⽤程序的实现66整合数据67模型设计67模型实现68使⽤设计模式69MVC69⽬标-操作70委托70处理 Foundation72值对象72字符串73数字74集对象74数组75集合78字典79使⽤ NSNull 表⽰ nil81编写⾃定类82声明并实现类83接⼝83实现83储存对象的数据的属性84⽅法⽤来定义对象的⾏为85⽅法参数86实现⽅法86教程:添加数据88创建数据类89载⼊数据90显⽰数据92将项⽬标记为已完成96添加新项⽬99⼩结105后续步骤106iOS 技术107⽤户界⾯107游戏108数据108Media109查找信息110通过关联帮助⽂章来获得 Xcode 指导110使⽤指南来获得通⽤概述和概念概述112使⽤ API 参考来获得类信息113使⽤ Quick Help 来获得关联的源代码信息118通过⽰例代码来查看实际⽤法120接下来做什么122让 ToDoList 应⽤程序提⾼⼀个档次123⽂稿修订历史124Swift5SwiftObjective-C●设置(第 7 页)●教程:基础(第 9 页)《马上着⼿开发 iOS 应⽤程序》给 iOS 开发带来⼀个完美开局。
IOS游戏开发Xcode工具具体分析详解
同Java/c++程序一样,一个Xcode项目包括了代码、界面、各类资源等。
下面我们看看Xcode的项日结构。
(1)HelloBeijing类下面包含了应用程序的代码:比如,AppDeleate.h以及X1B文件。
XIB 是应用程序的界面,包括界而上的各个对象,对象和代码之间的触发关系,比如:ViewController.X1B。
另外,你可以自己创建一个文件夹(如:WebServices文件夹存放同Web 服务相关的代码)。
(2)Supporting Files(支持文件)下包含各类资源:·应用程序所使用的图、声音文件(如:mp3)、视频文件等。
·Info.plist文件:包含了应用的一些设置信息,比如:应用的图标。
(3)Framework(框架)下包含了系统类库。
如果你展开Frameworks文件夹,你会看到系统已经自动为你添加了一些框架库,如:Foundation.framework、UIKit.framework等。
Foundation.framework包含NSString(字符串)、NSArray(数组)等类。
UIKit.framework提供了界而对象类(如:按钮、滑动条等)。
‘一个framework有一个头文件,这个头文件提供框架内的类的接口信息。
编译器需要这些信息来成功编泽你的代码。
上面大致介绍了Xcode项目结构。
接下来将会更具体地分析ios游戏开发Xcode这个工具上面太多眼花缭乱的按钮和图标会让不熟悉它的人感到晕头转向,因此对它了解的越深入,越有助于开发工作。
Xcode内置Interface Builder设计工具,并与Apple LLVM编泽器进行深度整合。
Instruments分析T具也包含于工具包之中。
”另外还有其他很多提供各种支持的开发者工具。
(1)单窗口:Xcode 4以前的版本中,开发任务的窗口是分散在多个窗口中的,如今全部合并成一个。
这样即使同时打开多个工程,也不会让开发者产生工作区混乱的感觉了。
iPhone文件系统NSFileManager讲解
//file文件操作NSFileManager常见的NSFileManager文件的方法:-(BOOL)contentsAtPath:path 从文件中读取数据-(BOOL)createFileAtPath:path contents:(BOOL)data attributes:attr 向一个文件写入数据-(BOOL)removeFileAtPath: path handler: handler 删除一个文件-(BOOL)movePath: from toPath: to handler: handler 重命名或移动一个文件(to可能已经存在)-(BOOL)copyPath:from toPath:to handler: handler 复制文件(to不能存在)-(BOOL)contentsEqualAtPath:path1 andPath:path2 比较两个文件的内容-(BOOL)fileExistsAtPath:path 测试文件是否存在-(BOOL)isReadablefileAtPath:path 测试文件是否存在,且是否能执行读操作-(BOOL)isWritablefileAtPath:path 测试文件是否存在,且是否能执行写操作-(NSDictionary *)fileAttributesAtPath:path traverseLink:(BOOL)flag 获取文件的属性-(BOOL)changeFileAttributes:attr atPath:path 更改文件的属性NSFileManager对象的创建:NSFileManager *fm;fm = [NSFileManager defaultManager];NSDictionary *attr =[fm fileAttributesAtPath: fname traverseLink: NO] ; //文件属性NSLog(@"file size is:%i bytes ",[[attr objectForKey:NSFileSize] intValue]);NSData *data =[fm contentsAtPath:@"filename"];//文件内容常见的NSFileManager目录的方法:-(NSString *)currentDirectoryPath 获取当前目录-(BOOL)changeCurrentDirectoryPath:path 更改当前目录-(BOOL)copyPath:from toPath:to handler:handler 复制目录结构,to不能已经存在-(BOOL)createDirectoryAtPath:path attributes:attr 创建目录-(BOOL)fileExistsAtPath:path isDirectory:(BOOL *)flag 测试文件是否为目录(flag存储结构yes/no)-(NSArray *)directoryContentsAtPath:path 列出目录的内容-(NSDirectoryEnumerator *)enumeratorAtPath:path 枚举目录的内容-(BOOL)removeFileAtPath:path handler:handler 删除空目录-(BOOL)movePath:from toPath:to handler:handler 重命名或移动一个目录,to不能是已经存在的path= [fm currentDirectoryPath] ;NSArray *dirarray;NSDirectoryEnumerator *direnu;direnu = [fm enumeratorAtPath:path];NSLog(@"contents of %@\n",path);BOOL flag;while((path = [direnu nextObject])!=nil)NSLog(@"%@ ",path);[fm fileExistsAtPath:path isDirectory:&flag];if(flag == YES)[direnu skipDescendents]; //跳过子目录}path= [fm currentDirectoryPath] ;dirarray = [fm directoryContentsAtPath:path];NSLog(@"%@ ",dirarray);常用路径工具函数NSString * NSUserName();返回当前用户的登录名NSString * NSFullUserName();返回当前用户的完整用户名NSString * NSHomeDirectory();返回当前用户主目录的路径NSString * NSHomeDirectoryForUser();返回用户user的主目录NSString * NSTemporaryDirectory();返回可用于创建临时文件的路径目录常用路径工具方法-(NSString *) pathWithComponents:components 根据components中元素构造有效路径-(NSArray *)pathComponents 析构路径,获取路径的各个部分-(NSString *)lastPathComponent 提取路径的最后一个组成部分-(NSString *)pathExtension 路径扩展名-(NSString *)stringByAppendingPathComponent:path 将path添加到现有路径末尾-(NSString *)stringByAppendingPathExtension:ext 将拓展名添加的路径最后一个组成部分-(NSString *)stringByDeletingPathComponent 删除路径的最后一个部分-(NSString *)stringByDeletingPathExtension 删除路径的最后一个部分的扩展名-(NSString *)stringByExpandingTildeInPath 将路径中的代字符扩展成用户主目录(~)或指定用户主目录(~user)-(NSString *)stringByResolvingSymlinksInPath 尝试解析路径中的符号链接-(NSString *)stringByStandardizingPath 通过尝试解析~、..、.、和符号链接来标准化路径-使用路径NSPathUtilities.htempdir = NSTemporaryDirectory(); 临时文件的目录名path = [fm currentDirectoryPath];[path lastPathComponent]; 从路径中提取最后一个文件名fullpath = [path stringByAppendingPathComponent:fname];将文件名附加到路劲的末尾extenson = [fullpath pathExtension]; 路径名的文件扩展名homedir = NSHomeDirectory();用户的主目录component = [homedir pathComponents]; 路径的每个部分NSProcessInfo类:允许你设置或检索正在运行的应用程序的各种类型信息+(NSProcessInfo *)processInfo 返回当前进程的信息-(NSArray*)arguments 以NSString对象数字的形式返回当前进程的参数-(NSDictionary *)environment 返回变量/值对词典。
nsoperation 的main 和 stat方法
nsoperation 的main 和 stat方法NSOperation 的 main 和 stat 方法是 iOS 开发中常用的任务调度和状态管理方法。
NSOperation类是在iOS中对操作进行抽象的一个类,用于管理并发任务的执行。
在NSOperation中,main方法是一个必须实现的方法。
它是一个执行操作的入口点。
当创建一个NSOperation对象并调用其start方法时,系统将自动调用main方法。
我们的任务代码应该放在main方法中,这样系统就能在后台线程上执行我们的任务。
在实现main方法时,我们需要自行管理任务的开始和结束。
可以通过检查isCancelled属性来决定任务是否取消,并在必要时提前结束任务。
任务完成后,我们应该调用相应的完成回调方法,以便通知操作队列任务已完成。
NSOperation 还提供了一些方法来管理操作的状态。
其中包括:- isReady:用于判断操作是否准备好执行,在依赖关系得到满足之前操作将处于非准备状态。
- isExecuting:用于判断操作是否正在执行中。
- isFinished:用于判断操作是否已经完成。
- isCancelled:用于判断操作是否已被取消。
另外,NSOperation 还提供了一些其他方法来设置和管理操作的依赖关系。
通过添加依赖关系,我们可以确保在另一个操作完成之前,当前操作不会开始执行。
总结来说,通过NSOperation 的 main 方法,我们可以在后台线程上执行任务代码,并通过状态方法来管理任务的状态。
这使得并发任务的调度和状态管理变得简单和可靠。
在开发iOS应用程序时,合理利用NSOperation类可以提高应用程序的性能和响应性。
iPhone系统目录结构
iPhone系统目录结构.fseventsd 这应该是第三方软件生成的一个目录,占内存很小/Applications 包含所有应用程序的目录这里个目录里,主要是放置程序的配置文件,每个app文件中有很多png格式的图片,主要是程序的图标什么的,想美化程序不是在这个目录改。
/Developer 不知道是干什么的,估计是给开发人员设置的吧…/Library 系统资源,用户设置其中/Library/Logs 系统日志/Library/Ringtones 放置系统自带的铃声,可以把自己喜欢的铃声放进去,但是,必须是m4r格式而且名称必须是英文字母或者是数字(第一个字符不能是数字,搞编程的人都懂吧。
)/Library/Themes 可以把自己喜欢的主题放在这个目录下/Library/Wallpaper 壁纸/System 顾名思义,系统的重要组成部分。
/System/Library/Carrier Bundles 可以改运营商logo,中国移动是CMCC_cn.bundles这个文件夹中。
联通和电信的就不知道了。
/System/Library/CoreServices/SpringBoard.app 注意这个文件目录,里面很多图片,美化必备。
/System/Library/Fonts/Cache 改字体的文件夹/System/Library/Frameworks 系统的构架/System/Library/PreferenceBundles 改程序图标/System/Library/PrivateFrameworks 同样是系统构架/System/Library/SystemConfiguration 系统设置/User 同样是顾名思义,都是自己的东西例如使用熊猫看书时,文件以txt格式上传到/User/Media/EBooks/User/Applications里面是安装的第三方软件中的一些东西,我的安装的扫雷的图片都在这个文件夹里,可以邪恶的改一下,当然备份备份备份第一。
[转]IOS的app程序中的文件目录的功能和使用详细说明
[转]IOS的app程序中的文件目录的功能和使用详细说明
备份和恢复
iTunes应用可在适当情况下自动处理备份和恢复。
然后,应用需要知道备份和恢复的文件放在哪里。
什么是备份
你不必为你的应用备份和恢复做任何准备。
在iOS
2.2以后,当设备连接到电脑并开始同步后,iTunes会自动增量备份所有文件,但不包括下面的目录:
/AppName.app
/Library/Caches
/tmp
虽然iTunes备份应用自身,但不是每次同步都这样做。
从app store上购买的应用,只在随后的同步过程中被iTunes备份。
再之后,iTunes并不在同步操作中备份应用,除非应用自身发生变化,比如应用的升级。
为了避免同步过程时间过长,你需要对应用中使用的文件放在哪里做出选择。
/Documents目录用来存放用户文档和应用数据文件。
临时文件要保存在Application
Home/tmp目录下,这样可以在不需要时删除。
如果在两次启动中都需要的数据文件,但是不需要备份的,可放置在Application
Home/Library/Caches。
比如很大的数据文件,尽量放置在Caches目录下,而不是Documents目录下,Documents目录下文件将做备份,这样会很耗时。
应用更新期间的文件保存
如果文件需要在应用更新后依然存在,需要放置在:。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于iFile的iOS R⃝系统文件目录分析
Maverick piny.guo@
July14,2011
Abstract
iOS R⃝是由苹果R⃝公司为iPhone R⃝开发的基于Darwin的操作系统,主要用于iPhone R⃝、iPod Touch R⃝以及iPad R⃝移动设备。
与苹果R⃝公司的一贯风格一样,iOS R⃝的文件系统封闭,用户无法像其他系统一样自由的操作和访问文件。
越狱后,用户可以通过各种第三方软件对其文件系统进行操作和访问,极大地提高了用户体验,本文以使用iOS R⃝4.2.1的iPad R⃝为例,使用iFile软件,简短地介绍iOS文件系统的常用目录。
1iFile略览
Figure1:iFile的侧边栏
1
Figure1是iFile的侧边栏效果图,图中显示的“设备”为“磁盘”即为本地(iPad R⃝)磁盘,如果使用特殊的数据接口将iPad R⃝与其他存储器联接的话可以访问其他存储器。
图中显示的“位置”为文件目录的一些常用链接:
主页/var/mobile
应用程序/var/mobile/Applications
文档/var/mobile/Documents
图片/var/mobile/Media/DCIM
媒体库/var/mobile/Media/iTunes_Control/Music
书籍/var/mobile/Media/Books
录像/var/mobile/Media/Recordings
选项/var/mobile/Library/Preferences
点击“磁盘”进入本地磁盘根目录如Figure2所示,下面开始整理介绍常用目录。
Figure2:iFile根目录
2
2iOS R⃝设备常用目录及其功能
2.1/bin
用过PC的用户应该对此名字并不陌生,此目录存放二进制系统执行指令,极少需要人为改动,用户访问此目录下的文件时应格外小心,切勿随意删改其中的文件。
(Figure3)
Figure3:/bin
2.2/etc
此目录为配置文件目录,存放了各种配置文件。
(Figure4)
2.3/Library
库文件目录,存放系统资料,是所有程序都可以调用的:(Figure5)
2.3.1/Library/Dictionaries
放置各种词典,在iBooks等程序中调用字典库可以实时查询,可以将字典手动加入此目录下。
3
Figure4:/etc
2.3.2/Library/Activator
此插件为手势调用插件,在其他程序运行时可以调用。
2.4/Var
包括系统运行时要改变的数据和几乎全部的用户资料,在使用iFile操作iPad R⃝中的文件时,绝大部分是在读写此目录下的文件,更准确来说绝大部分在读写/Var目录下的一个子目录:
/Var/mobile
这个目录就是侧边栏上映射的“主页”,存储了iOS设备中的几乎所有文件(即在PC或Mac端的iTunes上看到的容量条中看到的内容)下面介绍此目录下的常用目录。
(Figure67)
2.4.1/Var/mobile/Applications
从iTunes中导入和购买的应用程序,和用installous安装的程序都安装在此目录下,这个目录就类似于PC中的Program Files目录,许多媒体可以从这里导入。
以导入图书至GoodReader为例,只需将书籍写入
/Var/mobile/Applications/GoodReader/Documents/
即可。
(Figure89)
4
Figure5:/Library
2.4.2/var/mobile/Media
自带应用程序的媒体目录(虽然iBooks不是自带应用程序,但书籍目录也在此目录下)。
(Figure10)
/var/mobile/Media/Downloads/Safari的下载位置
/var/mobile/Media/iTunes Control/Music/iTunes音乐及影片文件夹,注意其他影音播放器的媒体文件在
/Var/mobile/Applications/?/Document/目录下
/var/mobile/Media/itunes Control/Ringtones/铃声目录(iPad除外)
/var/mobile/Media/Photos/Thumbs/利用iTunes同步上的图片
/var/mobile/Media/DCIM/100APPLE/iOS设备上的截图或拍摄的照片
/var/mobile/Media/Books iBooks书籍目录
/var/mobile/Media/Recording1录像文件存放目录
细心的用户会发现,在/var/mobile/Media目录下的所有媒体信息都会被改成统一的名字,若直接用iFile上传不能在该应用程序的媒体库中发现,或者是被
5
分至不同的子目录下,似乎并没有规律可言,这其中的规律笔者至今也没有发现,若有读者有这方面的见解不妨与我交流,分享快乐。
2.4.3/Var/mobile/Documents
iFile同步位置,也就是侧边栏上映射的“文档”,使用installous中下载的文件就存在此目录下,从PC上下载的.ipa文件必须写入此目录下才能进入installous安装。
2.4.4/var/mobile/Library
/var/mobile/Library/AddressBook/同步的电话簿
/var/mobile/Library/SMS短信存放目录(iPhone R⃝)
/var/mobile/Library/SBSettings/SBSetting插件的各种偏好选择
/var/mobile/Library/Mail/电子邮件目录
/var/mobile/Library/Notes/备忘录目录
/var/mobile/Library/SpringBoard/桌面设置目录,可以修改桌面的外观
2.4.5/Var/stash
stash顾名思义是一个存储文件的目录,但是到底存储那些方面的东西笔者至今没有发现子目录的统一之处,希望其他用户赐教。
常用目录如下:
/Var/stash/Applications.WkKiy7系统自带的应用程序和各种系统插件,用installous,Cydia或App Store下载的应用程序并不在此
/Var/stash/include.p07RTQ系统的头文件,运行程序时需从此调用头文件
/Var/stash/Themes.QlhuSF系统主题目录,安装了WinterBoard的用户可以下载.Theme格式主题放置此目录下进行主题更换
/Var/stash/Wallpaper.KO9TTs系统自带壁纸目录
笔者发现这些目录的后缀都是比较奇怪的字符串,可能不同的机器会产生不同的字符串吧。
2.5/tmp
存放系统的临时文件,有需要时可以清理。
6
2.6/vm
虚拟内存目录,在手动分配虚拟内存时需使用。
众所周知iPad R⃝的内存只有256MB,这让用户在使用后台运行程序时常常会出出现秒退的情况,虚拟内存的使用可以一定程度上缓解这一症状,但是各大论坛里使用虚拟内存的方法均不太稳定,用户使用时需谨慎。
2.7/system
系统文件目录,常用的有
/System/Library/Fonts/Cache/为字体库目录,需要修改字体时就要修改这个目录
3结语
作为iOS R⃝设备的初学者,对于其文件系统并没有深入的了解,只是方便自己更加熟练地使用iOS R⃝设备。
正因为此,本篇文章是笔者在使用过程中查找网上各类经验总结出来的,所以不可避免的有大量的不足和漏洞,请大家见谅!
7
Figure6:/Var
Figure7:/Var/mobile
8
Figure8:/Var/mobile/Applications
Figure9:/Var/mobile/Applications/GoodReader
9
Figure10:/var/mobile/Media
10。