1 18 package org.drftpd.remotefile; 19 20 import java.util.ArrayList ; 21 import java.util.Collection ; 22 import java.util.Iterator ; 23 24 import net.sf.drftpd.remotefile.LinkedRemoteFile; 25 import net.sf.drftpd.remotefile.LinkedRemoteFileInterface; 26 27 31 public class LinkedRemoteFileUtils { 32 33 protected LinkedRemoteFileUtils() { 34 super(); 35 } 36 37 public static void getAllDirectories( 38 LinkedRemoteFileInterface dir, 39 Collection directories) { 40 for (Iterator iter = dir.getDirectories().iterator(); 41 iter.hasNext(); 42 ) { 43 LinkedRemoteFile subdir = (LinkedRemoteFile) iter.next(); 44 getAllDirectories(subdir, directories); 45 } 46 directories.add(dir); 47 } 48 49 public static void getAllSFVFiles( 50 LinkedRemoteFile dir, 51 Collection sfvFiles) { 52 for (Iterator iter = dir.getDirectories().iterator(); 53 iter.hasNext(); 54 ) { 55 LinkedRemoteFile subdir = (LinkedRemoteFile) iter.next(); 56 getAllSFVFiles(subdir, sfvFiles); 57 } 58 sfvFiles.add(dir); 59 } 60 61 private static void getAllFilesInternal( 62 LinkedRemoteFileInterface dir, 63 ArrayList files) { 64 65 for (Iterator iter = dir.getFiles().iterator(); iter.hasNext();) { 66 LinkedRemoteFileInterface file = 67 (LinkedRemoteFileInterface) iter.next(); 68 if (file.isDirectory()) 69 getAllFilesInternal(file, files); 70 else if (file.isFile()) 71 files.add(file); 72 else 73 throw new IllegalArgumentException (); 74 } 75 } 76 77 public static ArrayList getAllFiles(LinkedRemoteFileInterface dir) { 78 ArrayList files = new ArrayList (); 79 getAllFilesInternal(dir, files); 80 return files; 81 } 82 } 83 | Popular Tags |