java 递归目录_Java 目录递归遍历

1 packagecn.sytz.picturePicker;2

3 importjava.io.File;4 importjava.io.IOException;5 importjava.util.ArrayList;6

7 importjavax.servlet.http.HttpServletRequest;8 importjavax.servlet.http.HttpServletResponse;9

10 importorg.apache.struts.action.ActionForm;11 importorg.apache.struts.action.ActionMapping;12 importorg.apache.struts.actions.DispatchAction;13

14 /*

15 * 设想: surveilPictureBean - 监控图片 Bean16 * bean.sourceRootPath String // 源根目录17 * bean.targetRootPath String // 目标根目录18 * bean.sourceAbsolutePath String // 源绝对路径19 * bean.relativePath String // 相对路径,含文件名20 * bean.relativePathWithoutFileName String // 相对路径,不含文件名21 * bean.pictureFileName // 图片文件名22 *23 */

24

25 public class DirectoryRecursion extendsDispatchAction {26

27 //private static ArrayList filelist = new ArrayList();28

29 //根目录,只处理其下子目录及文件

30 private static String sourceRootPath = "F:\\资料\\电子警察照片\\复件 122 - 副本";31 private static String targetRootPath = "D:\\目标文件夹";32

33 /*

34 * 构造函数35 */

36 publicDirectoryRecursion(){37 //this.main(null);

38 }39

40 /*

41 * 主函数42 */

43 public static voidmain(ActionMapping mapping, ActionForm form,44 HttpServletRequest request, HttpServletResponse response)45 throwsException {46

47

48

49 try{50

51 long a =System.currentTimeMillis();52

53 //refreshFileList("c:\\java");

54 refreshFileList( sourceRootPath );55

56 System.out.println( System.currentTimeMillis() -a);57

58 } catch( Exception e ) {59

60 System.out.println( " e.getMessage(): " + e.getMessage() ); //输出跟踪信息

61 e.printStackTrace();62 }63

64

65 }66

67 /*

68 * 刷新文件列表69 */

70 public static void refreshFileList( String strPath ) throwsIOException {71

72 File dir = newFile( strPath );73 File[] files =dir.listFiles();74

75 //相对路径

76 String relativePath = "";77

78 //空目录

79 if ( files == null ) return;80

81 //遍历

82 for ( int i = 0; i < files.length; i++) {83

84 if( files[i].isDirectory()) {85 //目录

86 refreshFileList( files[i].getAbsolutePath() );87 } else{88

89 //文件

90 String strFileName =files[i].getAbsolutePath().toLowerCase();91 System.out.println("文件名:" +strFileName );92

93 //相对路径,含文件名

94 relativePath =strFileName.substring( sourceRootPath.length() );95 System.out.println("relativePath:" +relativePath );96

97 //System.out.println("文件名:" + files[i].getPath() );98 //System.out.println("文件名:" + files[i].getCanonicalPath() );99

100 //仅目录,不含文件名

101 System.out.println("仅目录:" +files[i].getParent() );102

103 //仅目录,相对路径,不含文件名

104 System.out.println("仅目录(相对路径):" +files[i].getParent().substring( sourceRootPath.length() ) );105

106 //仅文件名,不含路径

107 System.out.println("仅文件名:" +files[i].getName() );108

109 //目标文件夹 targetPath

110 File targetPath = new File( targetRootPath +files[i].getParent().substring( sourceRootPath.length() ) );111

112 //如果目标文件夹不空 并且 不存在 则创建。

113 if( targetPath != null && !targetPath.exists() ){114 targetPath.mkdirs();115 }116

117 //filelist.add( files[i].getAbsolutePath() );

118 }119 }120 }121 }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值