/sun/PhotoAlbum/trunk/src/ak/photoalbum/util/FileNameComparator.java |
---|
0,0 → 1,31 |
package ak.photoalbum.util; |
import java.util.Comparator; |
import java.io.File; |
public class FileNameComparator |
implements Comparator |
{ |
private boolean dirFirst; |
public FileNameComparator(boolean dirFirst) |
{ |
this.dirFirst = dirFirst; |
} |
public int compare(Object o1, Object o2) |
throws ClassCastException |
{ |
return compare((File)o1, (File)o2); |
} |
public int compare(File f1, File f2) |
{ |
boolean d1 = f1.isDirectory(); |
boolean d2 = f2.isDirectory(); |
if(d1 && !d2) return (dirFirst ? -1 : 1); |
else if(!d1 && d2) return (dirFirst ? 1 : -1); |
else return f1.getName().compareToIgnoreCase(f2.getName()); |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/util/ImagesFilter.java |
---|
0,0 → 1,37 |
package ak.photoalbum.util; |
import java.io.File; |
import java.io.FileFilter; |
import java.util.Set; |
import java.util.HashSet; |
import java.util.StringTokenizer; |
public class ImagesFilter |
implements FileFilter |
{ |
Set extentions = new HashSet(); |
public ImagesFilter(String imagesMask) |
{ |
StringTokenizer tokenizer = new StringTokenizer(imagesMask, ";"); |
while(tokenizer.hasMoreTokens()) { |
String token = tokenizer.nextToken(); |
if(token.startsWith("*.")) token = token.substring(2); |
extentions.add(token.toLowerCase()); |
} |
} |
public boolean accept(File pathname) |
{ |
if(pathname.isDirectory()) { |
return !pathname.getName().startsWith("."); // skip hidden dirs |
} |
else{ |
return extentions.contains(FileUtils.extractFileExt( |
pathname.getName().toLowerCase())); |
} |
} |
} |
/sun/PhotoAlbum/trunk/src/ak/photoalbum/util/FileUtils.java |
---|
0,0 → 1,79 |
package ak.photoalbum.util; |
import java.util.Map; |
import java.util.HashMap; |
import java.io.File; |
import java.io.InputStream; |
import java.io.OutputStream; |
import java.io.IOException; |
public class FileUtils |
{ |
protected static final int COPY_BUFFER_SIZE = 4096; |
protected static final Map MIME_MAP = new HashMap(); |
static { |
MIME_MAP.put("jpg", "image/jpeg"); |
MIME_MAP.put("jpeg", "image/jpeg"); |
MIME_MAP.put("png", "image/png"); |
} |
public static String getMime(String ext) |
{ |
if(ext == null) |
return null; |
else |
return (String)MIME_MAP.get(ext.toLowerCase()); |
} |
public static void copyStreams(InputStream in, OutputStream out) |
throws IOException |
{ |
byte[] buf = new byte[COPY_BUFFER_SIZE]; |
int len; |
while((len = in.read(buf)) > 0) { |
out.write(buf, 0, len); |
} |
} |
public static String extractFileName(String fullName) |
{ |
if(fullName == null) return null; |
int pointPos = fullName.lastIndexOf('.'); |
if(pointPos <= 0) |
return fullName; |
else |
return fullName.substring(0, pointPos); |
} |
public static String extractFileExt(String fullName) |
{ |
if(fullName == null) return null; |
int pointPos = fullName.lastIndexOf('.'); |
if(pointPos <= 0) |
return ""; |
else |
return fullName.substring(pointPos + 1); |
} |
public static String replaceFileSeparator(String path, String replaceWith) |
{ |
String sep = File.separator; |
StringBuffer buf = new StringBuffer(); |
int pos = -1; |
int oldPos = -1; |
while((pos = path.indexOf(sep, pos + 1)) >= 0) { |
buf.append(path.substring(oldPos + 1, pos)).append(replaceWith); |
oldPos = pos; |
} |
buf.append(path.substring(oldPos + 1)); |
return buf.toString(); |
} |
} |