棋谱是用图和文字记述棋局的基本技术和开局、中局、残局着法的书和图谱,按棋种分中国象棋棋谱、国际象棋棋谱、围棋棋谱、五子棋棋谱等。
苹果不越狱怎么查看游戏app文件 *** 作方法:
在不越狱的情况,那么想获取其它文件夹就需要把它们拷贝到Documents目录,下面就是介绍如何把它们拷贝到Documents目录 *** 作方法:
本文的文件目录都是WKWebView框架为例子(https协议拦截的目录和文件拷贝的压缩文件见:https://pan.baidu.com/s/1Z1OPjuAAyfXxvCLmHZWOIw
, 不进行https协议拦截的目录及文件拷贝的压缩文件见:链接:https://pan.baidu.com/s/1mNas_eZRtPxxh3IAF_4TNg),至于UIWebView这种过时的东西我虽然也对比过(目录和文件拷贝的压缩文件见:https://pan.baidu.com/s/1dZBm0bzxziuOBFCigELJpg),最显著的区别是UIWebView的Library目录下没有WebKit目录,而WKWebView有,其它就不献丑了。iOS中的沙盒机制
iOS应用程序只能对自己创建的文件系统读取文件,这个独立、封闭、安全的空间,叫做沙盒。它一般存放着程序包文件(可执行文件)、图片、音频、视频、plist文件、sqlite数据库以及其他文件。
每个应用程序都有自己的独立的存储空间(沙盒)
一般来说应用程序之间是不可以互相访问
模拟器沙盒的位置
/User/userName/Library/Application Support/iPhone Simulator
当我们创建应用程序时,在每个沙盒中含有三个文件,分别是Document、Library和temp。
Document:用于写入应用相关数据文件的目录,在ios中写入这里的文件能够与iTunes共享并访问(在info.plist中Application supports iTunes file sharing属性键值对,Boolean类型,设置为YES),存储在这里的文件会自动备份到云端。
Library:设置程序的默认设置和其他状态信息
temp:创建临时文件的目录,当iOS设备重启时,文件会被自动清除
Library/Caches(NSCachesDirectory)//用于写入应用支持文件的目录,保存应用程序再次启动需要的信息。iTunes不会对这个目录的内容进行备份
Library/Preferences//这个目录包含应用程序的偏好设置文件,使用 NSUserDefault类进行偏好设置文件的创建、读取和修改
根目录路径 //这个目录基本包含应用程序的主要目录,我自己的app测试,发现有一个文件:.com.apple.mobile_container_manager.metadata.plist 和四个目录:Documents,Library,SystemData,tmp
AppName.app 目录:这是应用程序的程序包目录,包含应用程序的本身。由于应用程序必须经过签名,所以您在运行时不能对这个目录中的内容进行修改,否则可能会使应用程序无法启动。
获取应用程序程序包中资源文件路径的方法:
例如获取程序包中一个图片资源(apple.png)路径的方法:
NSString *imagePath = [[NSBundle mainBundle] pathForResource:@”apple” ofType:@”png”]
UIImage *appleImage = [[UIImage alloc] initWithContentsOfFile:imagePath]
代码中的mainBundle类方法用于返回一个代表应用程序包的对象。AppName.app的文件不能修改,一般用不到,这里就略过了。
非破解版本的iOS系统,可以看到除了Document可以通过iTunes共享并访问,其它目录用户都不能看到目录,只能用程序目录。若你想看到其它目录的文件长的什么样子,那么只有把它拷贝到Document(我也尝试过痛过dataWithContentsOfFile等读出再写入Document,结果只观察到两个文件可以拷贝过去,也就是咱们常用文件读出的都是nil.研究了两天终于找到copyItemAtPath函数可以拷贝几乎所有文件)。只要把app目录下的文件(像部分以"."开始的文件名文件无法拷贝,如:.com.apple.mobile_container_manager.metadata.plist。这类的文件对用户一般也没有什么用,对ios系统有用。)拷贝到Document文档目录,让后通过iTunes导出到电脑上,你想怎么分析数据就怎么分析数据了。
下面来干货了,本程序以AWGeneralFunction静态类实现例子,本程序从根目录开始拷贝,若你想从其它目录拷贝也有对应代码:
void)userCopyFilesToDocuments
{
NSFileManager* fm = [NSFileManager defaultManager]
BOOL flag = NO
// //拷贝lib目录下的所有文件到Document下的指定目录C1,我自己的app测试,发现有四个目录:Caches,Preferences,WebKit,Cookies
// NSArray *myPaths = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES)
// NSString* path = [myPaths lastObject]
// //拷贝lib目录下WebKit子目录(当然你可以通过此方法访问其它三个子目录)下的所有文件到Document下的指定目录C1
// path = [path stringByAppendingPathComponent:@"WebKit"]
//拷贝lib目录下Cookies子目录(当然你可以通过此方法访问其它三个子目录)下的所有文件到Document下的指定目录C1
path = [path stringByAppendingPathComponent:@"Cookies"]
// //拷贝Caches目录下的所有文件到Document下的指定目录C1
// NSArray *myPaths = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES)
// NSString* path = [myPaths objectAtIndex:0]
//拷贝Caches目录下WebKit子目录(当然你可以通过此方法访问其它三个子目录)下的所有文件到Document下的指定目录C1
path = [path stringByAppendingPathComponent:@"WebKit"]
// //拷贝temp目录下的所有文件到Document下的指定目录C1
// NSString* path = NSTemporaryDirectory()
//拷贝根目录(home)目录下的所有文件到Document下的指定目录C1
NSString* path = NSHomeDirectory()
[fm fileExistsAtPath:path isDirectory:&flag]
NSArray *dirarray = nil
NSString* filePath = nil
NSInteger n = 0, i = 0
NSMutableArray *filesMutableArr = [NSMutableArray array]
NSMutableArray *filesNameArr = [NSMutableArray array]
if(flag)
{
dirarray = [fm contentsOfDirectoryAtPath:path error:nil]
NSLog(@"%@ ",dirarray)
// [filesMutableArr initWithArray:dirarray]
n = dirarray.count
for(i = 0 i < n i++)
{
filePath = [path stringByAppendingPathComponent:dirarray[i]]
if ([self isDirectory:filePath])
{
//防止循环拷贝文档文件夹
if(dirarray[i] && ![dirarray[i] isEqualToString:@"Documents"])
{
[self getDirectoryDataWithfilePath:filePath filesMutableArr:filesMutableArr filesNameArr:filesNameArr]
}
}
else if([fm fileExistsAtPath:filePath])
{
NSLog(@"filePath:%@filesName:%@",filePath, dirarray[i])
[filesMutableArr addSafeObject:path]
[filesNameArr addSafeObject:dirarray[i]]
}
}
NSArray* myPaths1 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES)
NSString* myDocPath3 = [myPaths1 objectAtIndex:0]
NSString* path3 = [myDocPath3 stringByAppendingPathComponent:@"C1"]
BOOL flag1 = NO
[fm fileExistsAtPath:path3 isDirectory:&flag1]
if(!flag1)
{
BOOL res = [fm createDirectoryAtPath:path3 withIntermediateDirectories:YES attributes:nil error:nil]
if (res) {
NSLog(@"文件夹创建成功")
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)