[英]List ALL Files on iPhone
在Objective C中,如何获得iPhone上所有文件的列表?
这是否有可能,或者我只能从某个目录或已知路径获取文件?
并非没有越狱越狱的电话。 所有应用程序都位于沙箱中,并且只能看到某些文件。
不,您只能在沙箱中获取文件。 要显示当前目录,请使用以下代码:
- (NSString *) returnFilePath {
NSArray *pathArray =
NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
return [pathArray objectAtIndex:0];
}
我不确定为什么有人会说您的应用只能看到沙箱中的某些文件。 从iOS 2.x开始(上次尝试这种操作),您可以使用NSFileManager列出几乎所有目录中的文件。 下面是一些代码来获取所有的所有文件名的特定目录。
- (NSArray *)allFiles:(NSString *)aPath
NSMutableArray * listing = [NSMutableArray array];
NSArray * fileNames = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:aPath error:nil];
if (!fileNames) return listing;
for (NSString * file in fileNames) {
NSString * absPath = [aPath stringByAppendingPathComponent:file];
BOOL isDir = NO;
if ([[NSFileManager defaultManager] fileExistsAtPath:absPath isDirectory:&isDir]) {
if (isDir) {
[listing addObject:absPath];
[listing addObjectsFromArray:[self allFiles:absPath]];
} else {
[listing addObject:absPath];
}
}
}
return listing;
}
这是一个非常简单的递归函数的示例。 当然,可以对其进行修改,以使其更有效地与作为回调的块一起使用,甚至可以合并NSOperation
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.