实现磁盘搜索文件
来源:互联网 发布:js 100 7 编辑:程序博客网 时间:2024/04/26 12:10
主要思路:
利用栈遍历计算机所有磁盘,得到计算机上所有的文件夹名和文件名,并将其写入txt文件,然后根据文件名和文件夹名在txt中进行搜索,得到其路径。这样,虽然在第一次将文件名和文件夹名写入到txt中要耗费时间,但以后查询就很方便了。
代码如下:
package sdu.out.searchfile;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;
import java.util.Stack;
/*此类用于将计算机内所有文件名和文件夹名写入txt中*/
public class Search {
public static void main(String[] args) throws IOException {
// String message = "请输入要搜索的文件名:";
// System.out.println(message);
// Scanner scanner = new Scanner(System.in);
// String fileName = scanner.next();
FileWriter fw = new FileWriter(new File("F:\\1.txt"), true);
Stack<String> folderStack = new Stack<String>();// 存放文件夹的临时栈
Stack<String> index = new Stack<String>();// 存放文件夹的临时栈
File[] roots = File.listRoots();// 获取所有磁盘盘符
for (int i = roots.length - 1; i >= 0; i--)
folderStack.push(roots[i].toString());
while (!folderStack.isEmpty())// 遍历
{
File[] fl = new File(folderStack.pop()).listFiles();
if (fl == null)
continue;
for (int i = 0; i < fl.length; i++) {
if (fl[i].isDirectory()) {
folderStack.push(fl[i].getAbsolutePath());
index.add(fl[i].getAbsolutePath());
} else {
index.add(fl[i].getAbsolutePath());
}
fw.write(fl[i].getAbsolutePath() + "\r\n");
}
}
fw.flush();
fw.close();
// while (!index.isEmpty())// 遍历
// {
// if (index.peek().endsWith(fileName)) {//这里搜索以filename结尾的文件,大家可以使用正则表达式搜索想要的文件
// System.out.println(index.peek());
// }
// index.pop();
// // System.out.println(index.pop());
// }
}
}
package sdu.out.searchfile;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Scanner;
/*此类用于在txt中搜索并得到想要找到的文件的路径*/
public class SearchInTxt {
public static void main(String[] args) throws IOException {
String message = "请输入要搜索的文件名:";
System.out.println(message);
Scanner scanner = new Scanner(System.in);
String fileName = scanner.nextLine();
File file = new File("F:/1.txt");
FileInputStream fis = new FileInputStream(file);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
String str = null;
while((str=br.readLine())!=null){
if(str.endsWith(fileName)){
System.out.println(str);
}
}
}
}
- 实现磁盘搜索文件
- 磁盘文件搜索
- 搜索某个磁盘中的所有多媒体文件
- 磁盘搜索之Java简单实现
- java实现磁盘文件检索!
- subst实现文件映射磁盘
- .Net/C#控制台应用程序实现磁盘目录文件搜索的工具类 【本示例简体转繁体】
- JAVA实现文件搜索
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- .Net/C# 封装磁盘目录文件搜索功能的工具类 (实现了与搜索相关的事件,以便插入客户处理代码)
- VB异步处理应用实例:磁盘文件全文搜索
- C# 封装磁盘目录文件搜索功能的工具类
- WINAPI 搜索磁盘文件,为了速度 J:开始
- 搜索磁盘和移动磁盘
- 突破磁盘低级检测实现文件隐藏
- 通过虚拟磁盘彻底实现文件隐藏
- 实现磁盘文件的偏离操作
- [LeetCode]4 Add Two Numbers(C++,Python实现)
- WIN8下配置java环境变量
- OpenCV中文网站例程——多目标模板匹配
- java.lang.OutOfMemoryError: Java heap space 的解决
- 利用简单的shell脚本,生成有规律的导入文件
- 实现磁盘搜索文件
- 用yum安装Apache,Mysql,PHP
- 采用static nested的安全的单例模式脚本
- hive ,sqoop使用的jdbc驱动版本(mysql-connector-java-5.1.23-bin.jar)影响hive使用
- [BASIC-2] 01字串
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- 状态模式
- 有n人围成一圈,顺序排号。从第1个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来的第几号的那位。
- shell中的浮点数比较