diff --git a/src/zutil/io/file/FileSearcher.java b/src/zutil/io/file/FileSearcher.java index 42e179c..e995ae7 100755 --- a/src/zutil/io/file/FileSearcher.java +++ b/src/zutil/io/file/FileSearcher.java @@ -106,12 +106,12 @@ public class FileSearcher implements Iterable{ protected class FileSearchIterator implements Iterator{ private ArrayList fileList; - private int currentIndex; + private int index; private FileSearchItem nextItem; public FileSearchIterator(){ fileList = new ArrayList(); - currentIndex = 0; + index = 0; addFiles(new FileSearchFileItem(root), root.list()); next(); @@ -119,7 +119,7 @@ public class FileSearcher implements Iterable{ @Override public boolean hasNext() { - return currentIndex < fileList.size(); + return nextItem != null; } @Override @@ -129,20 +129,23 @@ public class FileSearcher implements Iterable{ @Override public FileSearchItem next() { - if(currentIndex < 0 || currentIndex >= fileList.size()) - return null; // Temporarily save the current file - FileSearchItem ret = fileList.get(currentIndex); - currentIndex++; + FileSearchItem ret = nextItem; // Find the next file - for(; currentIndex{ e.printStackTrace(); } } + //#### REGULAR FILES else if(searchFiles && file.isFile()){ - if(extension != null && FileUtil.getFileExtension(file.getName()).equalsIgnoreCase(extension)) + if(extension == null && fileName == null) // Should we match all files + break; + else if(extension != null && + FileUtil.getFileExtension(file.getName()).equalsIgnoreCase(extension)) break; - else if(fileName != null && file.getName().equalsIgnoreCase(fileName)) + else if(fileName != null && + file.getName().equalsIgnoreCase(fileName)) break; } } + if(index { public InputStream getInputStream() throws IOException { return new FileInputStream(file); } public String[] listFiles() { return file.list(); } + public File getFile() { return file; } + } protected static class FileSearchZipItem implements FileSearchItem{