我从其他地方获得此代码并进行了一些编辑,它允许使用 enumeratorAtPath
指定的起始路径遍历所有目录。使用此代码,我能够使用 isReadableFileAtPath
检索具有特定扩展名且具有读取属性的文件。我想要的是检索所有具有读取属性的任何扩展名的文件,并根据它们的最后一个文件夹名称将它们分类为不同的类别。
例如,如果我有一个路径/a/b/c/example.plist,/a/b/c/example.plist 将被归类在 c 下。
- (NSString *) retrievePaths
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableString *filePaths = [[NSMutableString alloc] init];
NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath:@"/"];
NSString *nextItem = [NSString string];
int i = 0;
while( (nextItem = [dirnum nextObject]))
{
if([[nextItem pathExtension] isEqualToString:@"db"] || [[nextItem pathExtension] isEqualToString:@"sqlitedb"] || [[nextItem pathExtension] isEqualToString:@"sqlite"]) {
if([fileManager isReadableFileAtPath:nextItem])
{
i++;
[filePaths appendFormat:@"%d)",i];
[filePaths appendString:nextItem];
[filePaths appendString:@"\n"];
}
}
}
NSString *format = [NSString stringWithFormat:@"Paths : %@", filePaths];
return format;
}
最佳答案
从代码中删除以下 if 条件,您将能够获得具有可读访问权限的所有文件
if([[nextItem pathExtension] isEqualToString:@"db"] || [[nextItem pathExtension] isEqualToString:@"sqlitedb"] || [[nextItem pathExtension] isEqualToString:@"sqlite"])
编辑
更新的功能试试这个,对你有用..
- (NSString *) retrievePaths
{
NSFileManager *fileManager = [NSFileManager defaultManager];
NSMutableString *filePaths = [[NSMutableString alloc] init];
NSString *path = @"/Assign/your/path/"; // assign your path
NSDirectoryEnumerator *dirnum = [[NSFileManager defaultManager] enumeratorAtPath:path];
NSString *nextItem = [NSString string];
int i = 0;
while( (nextItem = [dirnum nextObject]))
{
NSString *filePath = [path stringByAppendingPathComponent:nextItem];
BOOL isDir = NO;
[[NSFileManager defaultManager] fileExistsAtPath:filePath isDirectory:&isDir];
if(NO == isDir) {
if([fileManager isReadableFileAtPath:filePath])
{
i++;
[filePaths appendFormat:@"%d)",i];
[filePaths appendString:nextItem];
[filePaths appendString:@"\n"];
}
}
}
NSString *format = [NSString stringWithFormat:@"Paths : %@", filePaths];
return format;
}
关于ios - 检索具有读取属性的文件并对其进行分类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20537088/