-
Notifications
You must be signed in to change notification settings - Fork 0
/
ProcessFiles.java
55 lines (51 loc) · 1.06 KB
/
ProcessFiles.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
package net.gusto.util;
import java.io.*;
import java.nio.file.*;
// import static java.nio.file.StandardCopyOption.*;
public class ProcessFiles {
private String ext="*";
private Strategy strategy;
private File file;
public ProcessFiles (Strategy s, File f) {
strategy = s;
file =f;
}
public ProcessFiles (Strategy s, File f, String extension) {
strategy = s;
file =f;
ext = extension;
}
public ProcessFiles (Strategy s, String extension) {
strategy = s;
ext = extension;
}
public void start() {
if (file.isDirectory()) {
processDirectory(file);
} else {
process();
}
}
void processDirectory (File root) {
try {
String regex;
if (ext == "*") {
regex = ".*";
} else {
regex = ".*\\." + ext;
}
for (File file : Directory.local(root.getAbsolutePath(), regex)) {
strategy.process(file.getCanonicalFile());
}
} catch (IOException e) {
System.out.println(e);
}
}
public void process () {
try {
strategy.process(file);
} catch (IOException ioe) {
System.out.println(ioe);
}
}
}