文件管理器中的文件搜索功能:
来源:互联网 发布:手机如何开通淘宝网店 编辑:程序博客网 时间:2024/06/13 04:18
描述:输入一个字符串,搜索给定目录下的所有包含搜索字符的目录或文件。
1. 算法实现
分析:文件管理器中的文件层次结构是一颗树结构,该问题就是搜索树的除了根节点外,所有包含给定字符的结点,其中目录相当于非叶节点,文件相当于叶子结点。
实现:记目标路径为root,搜索字符为searchString。使用队列,依次扫描它的儿子结点,如果包含searchString,则添加到输出结果中;如果儿子结点为非叶结点,则添加到队列当中;
在一轮循环的最后,从队列中取出首元素,进入下一次循环。
public void searchProcess(File root,ArrayList<String> pathItems, String searchString){ if(root == null || !root.exist() || !root.isDirectory()) { pathItems = null; } ArrayDeque<File> queueFiles = new ArrayDeque<File>(); File top = root; while(top != null) { File[] files = top.listFiles(); if(files != null) { for(File f : files){ if (f.getName().length() >= 1 && f.getName().charAt(0) == '.') { continue; } if (f.getName().toLowerCase().contains(query.toLowerCase())) { pathItems.add(f.getPath); } if(f.isDirectory()) { queueFiles.add(f); } } } try { top = queueFiles.remove(); // Log.i(TAG,"top=="+top); } catch (NoSuchElementException e) { e.printStackTrace(); top = null; } } if (pathItems != null) { Collections.sort(pathItems,String.CASE_INSENSITIVE_ORDER); }}
2.SearchView控件
使用SearchView时,遇到一个问题迟迟没有找到答案:在搜索框中输入字符后点击搜索,这时候搜索框不消失,而且searchView仍处于展开状态,很影响用户体验。如何达到当点击搜索后,searchView就立即折叠?表示该次搜索已经完成。
SearchView.OnQueryTextListener mQueryTextListener = new SearchView.OnQueryTextListener() { public boolean onQueryTextSubmit(String query) { /*非常重要,他表示折叠actionView;mSearchMenu是在onCreateOptionsMenu()中通过menu.findItem(R.id.menu_search)获得;如果要展开actionView,则调用expandActionView()。 */ mSearchMenu.collapseActionView(); new SearchFileThread(query.trim()).start(); //mSearchView.setFocusable(false); //mSearchView.clearFocus();//表示让searchView失去焦点 return true; } public boolean onQueryTextChange(String newText) { return false; } };
0 0
- 文件管理器中的文件搜索功能:
- ubuntu中的文件管理器
- cPanel文件管理器功能解读
- 文件管理器
- 文件管理器
- 文件管理器
- 文件管理器
- 文件管理器
- 自定义Android文件管理器----管理SD卡中的文件
- ubuntu 搜索文件中的 字符。
- grep 搜索目录中的文件
- grep 搜索目录中的文件
- grep 搜索目录中的文件
- grep 搜索目录中的文件
- grep 搜索目录中的文件
- grep 搜索目录中的文件
- 搜索jar包中的文件
- 模拟实现android 文件管理器功能(循环打开文件夹)
- Android开发系列之搭建开发环境
- 从未安装的APK中获取默认启动的Activity
- U-Boot中部分cmd执行时死机问题分析
- 学习Qt的资源-网站、论坛、博客等
- 好感动后法国后大概花费后黄金矿工获救
- 文件管理器中的文件搜索功能:
- HomeKit的知识点
- 通过费马小定理求组合数(防止越界,因为做除法之前不能够取余)
- 检查用户名是否存在
- 台风
- 把Nutch爬虫部署到Hadoop集群上
- iPhone、iPad、iPadMini界面设计标准
- POJ 3928 Ping pong(树状数组基础题)
- 11- Android中Socket大文件断点上传