System.out.print("请输入检索的盘符:")
Scanner input = new Scanner(System.in)
String pf = input.next()
System.out.print("请输入检索的字符串:")
String s = input.next()
File file = new File(pf + ":/")
if (!file.isDirectory()) {
System.out.println("盘符不存在,或没有内容!")
return
}
js(file, s)
}
public static void js(File file, String s) throws Exception {
if (file == null)
return
if (file.isFile()) {// 判断是否是文件
String name = file.getName()// 取得文件的名字
// 文件的名字没有乎岩去岁裤御掉后缀,这段代码你自己写吧。
name = name == null ? "" : name.trim()
String path = file.getPath()/纯槐/ 取得文件路径
if (name.equalsIgnoreCase(s))// 如果文件名于录入的字符串相等打印文件路径
System.out.println(path)
}
File[] files = file.listFiles()// 取得文件夹中包含的文件及文件夹
if (files == null || files.length <= 0)
return// 如果没有其中没有文件或文件夹,返回
for (File file2 : files) {// 循环其下所有文件及文件夹
js(file2, s)// 递归
}
}
大体上是这样的。
/*** 查询指定余族哗目录下文件名符合正则表达式的文件
* @param list 用于保存符合条件的文件
* @param file 需要遍历竖行的目录
* @param reg 条件正则表达式
*/
public static void getFiles(List<File>list, File file, String reg) {
if (file.isFile()) {//若file是文件
if (Pattern.matches(reg, file.getName())) {
list.add(file)
}
return
}
//穗薯file是文件夹
File[] files = file.listFiles()
for (File f : files) {
if (f.isDirectory()) {//f是文件夹则递归
getFiles(list, f, reg)
} else {
if (Pattern.matches(reg, f.getName())) {
list.add(f)
}
}
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)