1

我正在开发一个文件管理器应用程序,如果用户搜索关键字,那么在给定路径中可用的所有文件和文件夹,文件名应该列在具有该搜索关键字的表视图中。搜索必须与特定文件夹的 finder 相同。

问题是 - 当我搜索任何关键字时,它只显示当前文件夹或表格视图中的文件,但我也想显示所有子文件夹的文件。

例如
本地文件夹

         ->>      **folder1**
                     -->f1.txt
                     -->f2.png
                     -->folder11
         ->>      **folder2**  

在这种情况下,当您搜索某些内容时,它会显示当前文件夹/文件,例如文件夹 1 和文件夹 2。我还需要找到子目录。

4

2 回答 2

0

谢谢...是的,我正在使用contentsOfDirectoryAtPath,现在,我检查subpathsOfDirectoryAtPathgetfilesandfolder. 太奇妙了。显示带有子文件夹和文件的路径。但问题是,当我搜索任何单词或字符时,不显示包含文件和文件夹(未找到结果)。使用subpathsOfDirectoryAtPath 它会显示所有带有子路径名称的文件和文件夹。

- (BOOL)searchDisplayController:(UISearchDisplayController *)controller shouldReloadTableForSearchString:(NSString *)searchString
{

    [marrFiles removeAllObjects];

    for (NSDictionary *tempDict in marrTmp)

  {
        NSString *tempStr = @"";

     if ([tempDict valueForKey:@"Folder"])
        {
            tempStr = [tempDict valueForKey:@"Folder"];
        }else{
            tempStr = [tempDict valueForKey:@"File"];
        }


       if ([tempStr rangeOfString:searchString].location != NSNotFound) {
            [marrFiles addObject:tempDict];
        }
    }

    return YES;
}
于 2014-05-09T09:46:46.990 回答
0

我不确定您是如何进行文件搜索的,但我假设您contentsOfDirectoryAtPath在从搜索目录获取路径时使用。相反,它subpathsOfDirectoryAtPathcontentsOfDirectoryAtPath重新运行所有包含的子目录的路径。

NSArray * contents = [[NSFileManager defaultManager] subpathsOfDirectoryAtPath: searchPath error:nil]; 
// Now make your search.

查看文档以获取更多信息。

于 2014-05-09T07:11:16.203 回答