diff options
Diffstat (limited to 'src/com/gitblit/utils/FileUtils.java')
-rw-r--r-- | src/com/gitblit/utils/FileUtils.java | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/com/gitblit/utils/FileUtils.java b/src/com/gitblit/utils/FileUtils.java index 0b8aeb4a..a21b5128 100644 --- a/src/com/gitblit/utils/FileUtils.java +++ b/src/com/gitblit/utils/FileUtils.java @@ -176,19 +176,17 @@ public class FileUtils { public static long folderSize(File directory) {
if (directory == null || !directory.exists()) {
return -1;
- }
- if (directory.isFile()) {
- return directory.length();
- }
- long length = 0;
- for (File file : directory.listFiles()) {
- if (file.isFile()) {
- length += file.length();
- } else {
+ }
+ if (directory.isDirectory()) {
+ long length = 0;
+ for (File file : directory.listFiles()) {
length += folderSize(file);
}
+ return length;
+ } else if (directory.isFile()) {
+ return directory.length();
}
- return length;
+ return 0;
}
/**
@@ -276,4 +274,19 @@ public class FileUtils { return path.getAbsoluteFile();
}
}
+
+ public static File resolveParameter(String parameter, File aFolder, String path) {
+ if (aFolder == null) {
+ // strip any parameter reference
+ path = path.replace(parameter, "").trim();
+ if (path.length() > 0 && path.charAt(0) == '/') {
+ // strip leading /
+ path = path.substring(1);
+ }
+ } else if (path.contains(parameter)) {
+ // replace parameter with path
+ path = path.replace(parameter, aFolder.getAbsolutePath());
+ }
+ return new File(path);
+ }
}
|