繁体   English   中英

列出iPhone上的所有文件

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM