X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Futil%2FFileUtils.java;h=4d35cd2cca4ccc26a209551f41a9b1f0bfdf305d;hb=2bb9cad4fa36d64cebbe09bc63732e8dbb4dcb32;hp=b6f4e907ad8bd7900ef18bbf97da80b1027f6946;hpb=ad47e73ed0aaa1a24a976802084c3912422f2be7;p=jalview.git diff --git a/src/jalview/util/FileUtils.java b/src/jalview/util/FileUtils.java index b6f4e90..4d35cd2 100644 --- a/src/jalview/util/FileUtils.java +++ b/src/jalview/util/FileUtils.java @@ -12,6 +12,7 @@ import java.nio.file.Paths; import java.nio.file.SimpleFileVisitor; import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; +import java.util.Collections; import java.util.EnumSet; import java.util.List; import java.util.stream.Collectors; @@ -67,10 +68,11 @@ public class FileUtils String glob = "glob:" + parentDir.toString() + File.separator + rest; PathMatcher pm = FileSystems.getDefault().getPathMatcher(glob); - int maxDepth = rest.contains("**") ? Integer.MAX_VALUE + int maxDepth = rest.contains("**") ? 1028 : (int) (rest.chars() .filter(ch -> ch == File.separatorChar).count()) + 1; + Files.walkFileTree(parentDir, EnumSet.of(FileVisitOption.FOLLOW_LINKS), maxDepth, new SimpleFileVisitor() @@ -108,6 +110,7 @@ public class FileUtils files.add(f); } } + Collections.sort(files); return files; } @@ -127,7 +130,7 @@ public class FileUtils } /* - * This method returns the basename of the first --open or --opennew value. + * This method returns the basename of the first --append or --open value. * Used primarily for substitutions in output filenames. */ public static String getBasename(File file) @@ -150,7 +153,7 @@ public class FileUtils } /* - * This method returns the dirname of the first --open or --opennew value. + * This method returns the dirname of the first --append or --open value. * Used primarily for substitutions in output filenames. */ public static String getDirname(File file) @@ -161,7 +164,9 @@ public class FileUtils String dirname = null; try { - dirname = file.getParentFile().getCanonicalPath(); + File p = file.getParentFile(); + File d = new File(substituteHomeDir(p.getPath())); + dirname = d.getCanonicalPath(); } catch (IOException e) { Console.debug(