NSFileManager无法在某些目录下查看

时间:2011-06-08 05:22:58

标签: iphone ios jailbreak nsfilemanager

我正在尝试编写一些代码来检查或更改用户设备上安装的其他iOS应用程序(不是恶意的或类似的东西)。特别是在越狱设备上。在越狱设备上,我能够查看应用程序沙箱之外的文件,当我使用NSFileManager查看“/ private / var / mobile / Applications /”时,我看到目录列表(以某种十六进制方案命名) 。正如所料。

不幸的是,当我查看每个目录时,所有这些目录都返回(除了正在运行的应用程序本身),对于isDirectory返回FALSE,对于attributesOfItemAtPath返回NULL。我需要访问每个文件夹中的.app,但我无法在下面看到它们,并且每个文件都返回无效信息。

以下是我正在使用的代码:

  NSString *path = @"/private/var/mobile/Applications/";
        NSFileManager *manager = [NSFileManager defaultManager];
        NSArray *fileList = [manager contentsOfDirectoryAtPath:path error:nil]; 


            for(NSString *file in fileList) {


  NSString *fullpath = [path stringByAppendingPathComponent:file];
            NSLog(@"fullpath = %@", fullpath);

        BOOL isDir = nil;
            [manager fileExistsAtPath:fullpath isDirectory:(&isDir)];
            if(isDir) {
                NSLog(@"isDir");
                //NSArray *subfiles = [self filesBeneathDirectory:fullpath withExtension:extension];
            } else {


            NSLog(@"!isDir");
                    NSDictionary *attributes = [manager attributesOfItemAtPath:fullpath error:nil];
                    NSLog(@"attributes = %@",attributes);
            }

     }

我很感激在检测这些目录下的文件方面有任何帮助。我原以为iPhone会有完全的root访问权限(成为越狱设备)。

1 个答案:

答案 0 :(得分:2)

从您的应用程序中,您只能访问自己的沙箱。如果您访问其他目录中的文件,它将不会有任何好处,Apple有限制访问权限的原因有很多。