28package com.jogamp.junit.util;
30import java.io.BufferedInputStream;
32import java.io.FileInputStream;
33import java.io.IOException;
34import java.io.InputStream;
35import java.util.ArrayList;
38import com.jogamp.common.util.IOUtil;
48 public final List<File>
srcFiles =
new ArrayList<File>();
49 public final List<File>
dstFiles =
new ArrayList<File>();
51 public void dump(
final String prefix,
final boolean folderOnly) {
52 System.err.println(prefix+
"Total bytes: "+
totalBytes);
53 System.err.println(prefix+
"Total files: "+
totalFiles);
54 System.err.println(prefix+
"Total folder: "+
totalFolders);
56 System.err.println(prefix+
"Tracking: "+
trackFiles);
58 for(
int i=0; i<
srcFiles.size(); i++) {
61 if( !folderOnly || src.isDirectory() ) {
62 System.err.printf(
"%s\t src %4d: %s%n", prefix, i, src.toString());
63 System.err.printf(
"%s\t dst %4d: %s%n%n", prefix, i, dst.toString());
69 public static CopyStats copy(
final File src,
final File dest,
final int maxDepth,
final boolean trackFiles)
throws IOException {
71 cs.maxDepth = maxDepth;
72 cs.trackFiles = trackFiles;
76 private static void copy(
final File src,
final File dest,
final CopyStats stats)
throws IOException {
77 if(src.isDirectory()){
78 if( stats.maxDepth >= 0 && stats.currentDepth >= stats.maxDepth ) {
82 if( stats.trackFiles ) {
83 stats.srcFiles.add(src);
84 stats.dstFiles.add(dest);
90 final String fileNames[] = src.list();
91 for (
int i=0; i<fileNames.length; i++) {
92 final String fileName = fileNames[i];
93 final File srcFile =
new File(src, fileName);
94 final File destFile =
new File(dest, fileName);
95 copy(srcFile, destFile, stats);
100 if( stats.trackFiles ) {
101 stats.srcFiles.add(src);
102 stats.dstFiles.add(dest);
104 final InputStream in =
new BufferedInputStream(
new FileInputStream(src));
106 stats.totalBytes += IOUtil.copyStream2File(in, dest);
final List< File > srcFiles
final List< File > dstFiles
void dump(final String prefix, final boolean folderOnly)
static CopyStats copy(final File src, final File dest, final int maxDepth, final boolean trackFiles)