From 1968608d809426e12141fc02d752f072ae91ce48 Mon Sep 17 00:00:00 2001 From: Reinhard Pointner Date: Sat, 2 Aug 2014 06:07:41 +0000 Subject: [PATCH] * using FastFile might be useful for scripting (esp. with slow remote file systems) --- source/net/filebot/cli/ScriptShellMethods.java | 5 +++++ source/net/filebot/util/FastFile.java | 6 ++++++ 2 files changed, 11 insertions(+) diff --git a/source/net/filebot/cli/ScriptShellMethods.java b/source/net/filebot/cli/ScriptShellMethods.java index 185f9f0c..df0e3089 100644 --- a/source/net/filebot/cli/ScriptShellMethods.java +++ b/source/net/filebot/cli/ScriptShellMethods.java @@ -29,6 +29,7 @@ import net.filebot.media.MetaAttributes; import net.filebot.similarity.NameSimilarityMetric; import net.filebot.similarity.Normalization; import net.filebot.similarity.SimilarityMetric; +import net.filebot.util.FastFile; import net.filebot.util.FileUtilities; import net.filebot.web.WebRequest; @@ -218,6 +219,10 @@ public class ScriptShellMethods { return FileUtilities.validateFilePath(self); } + public static FastFile memoize(File self) { + return new FastFile(self.getPath()); + } + public static File moveTo(File self, File destination) throws IOException { return FileUtilities.moveRename(self, destination); } diff --git a/source/net/filebot/util/FastFile.java b/source/net/filebot/util/FastFile.java index faa0efd8..5a93fa71 100644 --- a/source/net/filebot/util/FastFile.java +++ b/source/net/filebot/util/FastFile.java @@ -16,6 +16,7 @@ public class FastFile extends File { private String[] list; private File[] listFiles; + private String canonicalPath; public FastFile(String path) { super(path); @@ -50,6 +51,11 @@ public class FastFile extends File { return lastModified != null ? lastModified : (lastModified = super.lastModified()); } + @Override + public String getCanonicalPath() throws IOException { + return canonicalPath != null ? canonicalPath : (canonicalPath = super.getCanonicalPath()); + } + @Override public String[] list() { if (list != null) {