我想知道开发人员是否有办法在iOS设备上查看文件系统,就像iFile一样,但不需要越狱设备? 这是为了开发目的。
编辑 谢谢你们的回答!我知道应用程序文件夹内部有一个位置可以读取和写入。 但我正在寻找一种快速查看数据的方法,而不需要编码,就像iFile一样。这样我就可以检查我的写入功能是否成功或失败。
我想知道开发人员是否有办法在iOS设备上查看文件系统,就像iFile一样,但不需要越狱设备? 这是为了开发目的。
编辑 谢谢你们的回答!我知道应用程序文件夹内部有一个位置可以读取和写入。 但我正在寻找一种快速查看数据的方法,而不需要编码,就像iFile一样。这样我就可以检查我的写入功能是否成功或失败。
尽管iDevice上的文件系统是沙盒化的,但iPhone模拟器中的文件系统却不是。您可以在模拟器上运行应用程序,并通过以下方式检查其中的内容:
~/Library/Application Support/iPhone Simulator/5.0/Applications
它应该符合您的需求。
~/Library/Application Support/iPhone Simulator/5.0/Applications
。在iOS设备上,您可以查看文件,但仅限于您的应用程序沙盒中。每个应用程序都有一个Documents
、Cache
和temp
文件夹。我认为前两个文件夹在连接设备时自动备份到iTunes,而后者则不会备份。
例如,要获取缓存目录路径 -
- (NSString *)getCacheDirPath
{
NSString *path = nil;
NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
if([myPathList count])
{
NSString *bundleName = [[[NSBundle mainBundle] infoDictionary] objectForKey:@"CFBundleIdentifier"];
path = [[myPathList objectAtIndex:0] stringByAppendingPathComponent:bundleName];
}
return path;
}
要查看目录中的所有文件 -
- (NSMutableArray *)showFiles
{
NSError *err = nil;
NSArray *myPathList = NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES);
NSString *myPath = [myPathList objectAtIndex:0];
NSArray *dirContent = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:myPath error:&err];
if(err) NSLog(@"showFiles() - ERROR: %@",[err localizedDescription]);
NSMutableArray *filePaths = nil;
int count = (int)[dirContent count];
for(int i=0; i<count; i++)
{
[filePaths addObject:[dirContent objectAtIndex:i]];
}
return filePaths;
}
return [dirContent mutableCopy]
代替那个愚蠢的循环。 - ardnewiTools是一个小工具,可以绕过苹果保护iPhone的努力。因此,它可能会侵犯一些苹果政策,但能够完成工作。
是的,lms是正确的。苹果已经限制了文件访问权限,只有应用程序本身的(文档目录)。所以没有其他访问方式。我在我的一个项目中遇到了这个问题,然后开始开发完整的文件访问系统。所有操作都像iFile一样支持。你可以通过类似iFile应用程序的可视化界面进行相似的操作。
https://github.com/CianApple/FileSystem
我已经在Github上公开发布了这个项目。请随意使用它,它可能会帮助您解决问题。