ios - 检索具有读取属性的文件并对其进行分类

标签 ios objective-c

我从其他地方获得此代码并进行了一些编辑,它允许使用 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/

相关文章:

ios - 滚动到行(位于 :at:animated:) SwiftUI

ios - CSSearchableItemAttributeSet 上的 title 和 displayName 属性

ios - 我们可以使用 Twilio iOS SDK 进行 VOIP 推送通知吗?

ios - 结构 isKindOfClass

objective-c - 如何从 NSDictionary 添加和检索整数(键和值)

iphone - 如何从 iPhone 将通话从一台蓝牙设备转移到另一台蓝牙设备?

iOS 重新请求联系人权限

ios - cordova ios 项目中 config.xml 中 <edit-config 的父标记是什么?

iOS iCloud 文档 : can I prevent documents from being purged?

objective-c - 适用于 iPhone 的 Orkut API