blob: 52fa2f46d6cdb11b6cb675b7a73409eeb2e0af8c (
plain)
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
|
package org.zwobble.mammoth.internal.archives;
import java.util.ArrayList;
import java.util.List;
import static java.util.Arrays.asList;
import static org.zwobble.mammoth.internal.util.Lists.eagerFilter;
public class ZipPaths {
private ZipPaths() {
}
public static class SplitPath {
private final String dirname;
private final String basename;
public SplitPath(String dirname, String basename) {
this.dirname = dirname;
this.basename = basename;
}
public String getDirname() {
return dirname;
}
public String getBasename() {
return basename;
}
}
public static SplitPath splitPath(String path) {
int index = path.lastIndexOf("/");
if (index == -1) {
return new SplitPath("", path);
} else {
String dirname = path.substring(0, index);
String basename = path.substring(index + 1);
return new SplitPath(dirname, basename);
}
}
public static String joinPath(String... paths) {
List<String> nonEmptyPaths = eagerFilter(asList(paths), path -> !path.isEmpty());
List<String> relevantPaths = new ArrayList<>();
for (String path : nonEmptyPaths) {
if (path.startsWith("/")) {
relevantPaths.clear();
}
relevantPaths.add(path);
}
return String.join("/", relevantPaths);
}
}
|