1
0
mirror of https://github.com/mitb-archive/filebot synced 2024-12-25 09:18:51 -05:00

* make sure files are added alphabetically (File.list() does not guarantee sorted return value)

This commit is contained in:
Reinhard Pointner 2014-11-04 10:06:45 +00:00
parent c1d8071844
commit fc70050ce3
2 changed files with 19 additions and 12 deletions

View File

@ -70,7 +70,7 @@ class ChecksumTableTransferablePolicy extends BackgroundFileTransferablePolicy<C
protected void load(List<File> files, TransferAction action) throws IOException { protected void load(List<File> files, TransferAction action) throws IOException {
// initialize drop parameters // initialize drop parameters
executor.set(computationService.newExecutor()); executor.set(computationService.newExecutor());
verificationTracker.set(new VerificationTracker(3)); verificationTracker.set(new VerificationTracker(5));
try { try {
// handle single verification file drop // handle single verification file drop
@ -79,7 +79,7 @@ class ChecksumTableTransferablePolicy extends BackgroundFileTransferablePolicy<C
} }
// handle single folder drop // handle single folder drop
else if (files.size() == 1 && files.get(0).isDirectory()) { else if (files.size() == 1 && files.get(0).isDirectory()) {
for (File file : getChildren(files.get(0))) { for (File file : getChildren(files.get(0), NOT_HIDDEN, CASE_INSENSITIVE_PATH)) {
load(file, null, files.get(0)); load(file, null, files.get(0));
} }
} }
@ -141,7 +141,7 @@ class ChecksumTableTransferablePolicy extends BackgroundFileTransferablePolicy<C
if (absoluteFile.isDirectory()) { if (absoluteFile.isDirectory()) {
// load all files in the file tree // load all files in the file tree
for (File child : getChildren(absoluteFile)) { for (File child : getChildren(absoluteFile, NOT_HIDDEN, CASE_INSENSITIVE_PATH)) {
load(child, relativeFile, root); load(child, relativeFile, root);
} }
} else { } else {

View File

@ -437,22 +437,21 @@ public final class FileUtilities {
} }
public static List<File> getChildren(File folder) { public static List<File> getChildren(File folder) {
File[] files = folder.listFiles(); return getChildren(folder, null, null);
// children array may be null if folder permissions do not allow listing of files
if (files == null) {
files = new File[0];
}
return asList(files);
} }
public static List<File> getChildren(File folder, FileFilter filter) { public static List<File> getChildren(File folder, FileFilter filter) {
File[] files = folder.listFiles(filter); return getChildren(folder, filter, null);
}
public static List<File> getChildren(File folder, FileFilter filter, Comparator<File> sorter) {
File[] files = filter == null ? folder.listFiles() : folder.listFiles(filter);
// children array may be null if folder permissions do not allow listing of files // children array may be null if folder permissions do not allow listing of files
if (files == null) { if (files == null) {
files = new File[0]; files = new File[0];
} else if (sorter != null) {
sort(files, sorter);
} }
return asList(files); return asList(files);
@ -695,6 +694,14 @@ public final class FileUtilities {
} }
}; };
public static final FileFilter NOT_HIDDEN = new FileFilter() {
@Override
public boolean accept(File file) {
return !file.isHidden();
}
};
public static class ParentFilter implements FileFilter { public static class ParentFilter implements FileFilter {
private final File folder; private final File folder;