方法一:

http://blog.csdn.net/zjx102938/article/details/8114114

  1. import java.io.File;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4.  
  5. public class FileFind {
  6. public static void main(String[] args) {
  7.  
  8. String path = "D:\\Test";
  9. List data=new ArrayList();
  10. data=getData(path, data);
  11. for (int i=0;i<data.size();i++) {
  12. System.out.println(data.get(i));
  13. }
  14. }
  15.  
  16. private static List getData(String path, List data) {
  17.  
  18. File f=new File(path);
  19. if (f.isDirectory()) {
  20. File[] fs=f.listFiles();
  21. for (int i=0;i<fs.length;i++) {
  22. data=getData(fs[i].getPath(), data);
  23. }
  24. } else if (f.getName().endsWith(".java")) {
  25. data.add(f.getName());
  26. }
  27. return data;
  28. }
  29. }

  方法二:

  1. package test;
  2.  
  3. import java.io.BufferedWriter;
  4. import java.io.File;
  5. import java.io.FileWriter;
  6. import java.io.FilenameFilter;
  7. import java.io.IOException;
  8. import java.util.ArrayList;
  9.  
  10. public class SearchSuffixIndir {
  11.  
  12. private static String path = "E:\\myeclipse\\mirror_parse\\WebRoot\\mirror";
  13.  
  14. /**
  15. *
  16. * 将给定目录下的及子目录下的 所有的给定后缀名的文件路径打印到一个文件中。
  17. *
  18. * 深度遍历该父目录,将符合条件的文件路径存到集合中。(进行过滤)。
  19. *
  20. * 再将集合写到文件中。
  21. *
  22. *
  23. */
  24. public static void main(String[] args) {
  25.  
  26. File dir = new File(path);
  27.  
  28. File file = new File(dir,"suffix.txt");
  29. //内部类
  30. FilenameFilter searchSuffix = new FilenameFilter(){
  31. @Override
  32. public boolean accept(File dir, String name) {
  33. return name.endsWith(".html");
  34. }
  35. };
  36.  
  37. ArrayList<File> path = new ArrayList<File>();
  38.  
  39. writeToArr(dir,searchSuffix,path);
  40. writeTofile(path,file);
  41. }
  42.  
  43. private static void writeTofile(ArrayList<File> al, File file) {
  44. BufferedWriter bw = null;
  45. try {
  46. bw = new BufferedWriter(new FileWriter(file));
  47.  
  48. for(File f: al){
  49. new String();
  50. // bw.write(String.valueOf(f.length()));
  51. bw.write(f.getAbsolutePath());
  52. bw.newLine();
  53. bw.flush();
  54. }
  55. } catch (IOException e) {
  56. throw new RuntimeException("写入失败!");
  57. }finally{
  58. if(bw != null)
  59. try {
  60. bw.close();
  61. } catch (IOException e) {
  62. throw new RuntimeException("关闭失败!");
  63. }
  64. }
  65.  
  66. }
  67.  
  68. public static void writeToArr(File dir, FilenameFilter searchSuffix, ArrayList<File> al) {
  69.  
  70. File []files = dir.listFiles();
  71. for(File f : files){
  72. if(f.isDirectory()){
  73. //递归了。
  74. writeToArr(f, searchSuffix, al);
  75. }else{
  76. if(searchSuffix.accept(dir, f.getName())){
  77. System.out.println(f);
  78. al.add(f);
  79. }
  80. }
  81. }
  82. }
  83.  
  84. }

  

Java获取一个路径下指定后缀名的所有文件的更多相关文章

  1. C#中获取指定路径下指定后缀名的所有文件的路径的list

    场景 指定一个路径和后缀名,查找这个路径下所有以此后缀名结尾的文件. 注: 博客主页: https://blog.csdn.net/badao_liumang_qizhi关注公众号 霸道的程序猿 获取 ...

  2. IO流-递归遍历目录下指定后缀名结尾的文件名称

    /* *自定义遍历目录下指定后缀名结尾文件的名称的方法: * * param file:指定目录 name:指定后缀名 */ 1 public static void FileName(File fi ...

  3. Python查找当前路径和子路径下指定后缀名的文件

    # -*- encoding:utf-8 -*- import os def SearchFile(path,text): try: files=os.listdir(path) for f in f ...

  4. Java基础知识强化之IO流笔记49:IO流练习之 复制指定目录下指定后缀名的文件并修改名称的案例

    1. 复制指定目录下指定后缀名的文件并修改名称的案例     需求:复制指定目录下的指定文件,并修改后缀名.  • 指定的文件是:.java文件.     • 指定的后缀名是:.jad     • 指 ...

  5. 删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件:BAT + VBS

    代码如下: @echo off ::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件. ::如果演示结果无误,把del前面的echo去掉,即可实现真正删除. ::本例调用了临时VBS ...

  6. 删除指定路径下指定天数之前(以文件的修改日期为准)的文件:forfiles

    删除指定路径下指定天数之前(以文件的修改日期为准)的文件:forfiles 代码如下: @echo off ::演示:删除指定路径下指定天数之前(以文件的最后修改日期为准)的文件. ::如果演示结果无 ...

  7. 删除指定路径下指定天数之前(以文件的创建日期为准)的文件:BAT + REG + Ritchie Lawrence 日期函数

    代码如下: @echo off::演示:删除指定路径下指定天数之前(以文件的创建日期为准)的文件.::如果演示结果无误,把del前面的echo去掉,即可实现真正删除.::本例调用了 Ritchie L ...

  8. Java 递归获取一个路径下的所有文件,文件夹名称

    package com.readfile; import java.io.File; public class GetAllFiles { public static void main(String ...

  9. java 获取某路径下的子文件/子路径

    /** * 获取某路径下的子文件 * */ public static List<String> getSubFile(String path){ List<String> s ...

随机推荐

  1. sjtu1590 强迫症

    Description BS96发布了一套有\(m\)个band柄绘的新badge,kuma先生想要拿到04的badge于是进行了抽抽抽. kuma先生一共抽了\(n\)个badge.他把所有的bad ...

  2. lr11 BUG?Failed to send data by channels - post message failed.

    问题描述   : http协议,场景运行一会之后,报错! erro信息: Failed to send data by channels - post message failed. 解决方法 :ht ...

  3. http://blog.csdn.net/carolzhang8406/article/details/7196011

    http://blog.csdn.net/carolzhang8406/article/details/7196011

  4. 李洪强实现横向滚动的View<二>

    上一节中我们已经实现了一个带有图片,标题和价格label 的UIView 这节我们用这个view实现一个横向滚动的UIcollectionView 实现的效果如下:  01 - 创建CFTyreScr ...

  5. NHibernate与EF(Entity Framework)的区别

    http://www.cnblogs.com/lukun/archive/2011/05/16/2047587.html NHibernate与EF(Entity Framework)的区别 http ...

  6. ANDROID_MARS学习笔记_S01原始版_007_Handler及线程的简单使用

    一.运行结果 一.代码1.xml(1)activity_main.xml <RelativeLayout xmlns:android="http://schemas.android.c ...

  7. Android Service 生命周期和使用注意项

    一.基础知识 服务一般分为两种: 1:本地服务, Local Service 用于应用程序内部.在Service可以调用Context.startService()启动,调用Context.stopS ...

  8. 49. 面向对象的LotusScript(十五)之Log4Dom下

    Log4Dom是模仿Log4J的思想建立的.Log4J能够向多种记录媒介以统一的格式写入各种级别的日志信息(包括错误.调试和信息等),还可以籍配置文件在运行时方便地修改记入日志的级别.Log4Dom提 ...

  9. Android开发UI之布局文件LinearLayout

    LinearLayout-线性布局,该布局中的控件按照水平方向排列或者竖直方向排列. 通过属性android:orientation=""决定的,可选值:vertical和hori ...

  10. Eclipse问题解决方案,不断更新

    执行“software update”时出现:Error retrieving "feature.xml"... 执行“software update”时出现:Error retr ...