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 }