我在Objective c中创建了一个越狱应用程序,它以“/”路径开头枚举整个iPhone系统,并输出可使用isReadableFileAtPath
可读的文件路径here。但是,运行在2个不同环境/Applications
和/var/mobile/Applications
中具有相同代码的应用程序后,我意识到在输出中检索的文件路径是相同的。我在/Applications
中的应用程序将能够检索任何文件路径,因为它不在沙盒文件夹中。但是/var/mobile/Applications
中的相同应用程序能够读取从Appstore安装的另一个应用程序中的文件(我认为沙箱会阻止它)。
所以我的问题是沙盒以何种方式阻止文件的可访问性,因为使用isReadableFileAtPath
根本不起作用。
我是否必须编写能够通过打开文件来检查文件是否可访问的内容(如此代码,如果内容为NULL,如果无法访问)?我真的希望有人能清除我的误解,因为我是IOS的新手
NSString* content = [NSString stringWithContentsOfFile:path
encoding:NSUTF8StringEncoding
error:NULL];
答案 0 :(得分:0)
沙箱不会阻止应用打开某些类型的文件。它只允许应用程序从有限数量的目录(应用程序的“沙盒”目录)中读取和写入文件。文件系统不会授予应用程序对整个“磁盘”的完全访问权限。越狱手机打破了这一限制。