FileDocCategorySizeDatePackage
ShortcutFileSystemView.javaAPI DocExample1541Mon Jan 09 11:01:58 GMT 2006None

ShortcutFileSystemView.java

import java.io.File;
import javax.swing.Icon;
import javax.swing.filechooser.FileSystemView;

public class ShortcutFileSystemView extends FileSystemView {
    
    
    /* =================== FileSystemView implementation ===================== */
    public Boolean isTraversable(File f) {
        if(isDirLink(f)) {
            return new Boolean(true);
        }
        return super.isTraversable(f);
    }
    
    public File[] getFiles(File dir, boolean useFileHiding) {
        if(isDirLink(dir)) {
            dir =  getRealFile(dir);
        }
        
        return super.getFiles(dir,useFileHiding);
    }
    
    
    /* =================== FileSystemView implementation ===================== */
    private boolean isDirLink(File f) {
        try {
            if(f.getName().toLowerCase().endsWith(".lnk")) {
                if(new LnkParser(f).isDirectory()) {
                    return true;
                }
            }
        } catch (Exception ex) {
            System.out.println("ex: " + ex);
            ex.printStackTrace();
        }
        return false;
    }
    
    private File getRealFile(File file) {
       try {
           return new File(new LnkParser(file).getRealFilename());
       } catch (Exception ex) {
           System.out.println("ex: " + ex);
           ex.printStackTrace();
           return null;
       }
    }
    
    
    public File createNewFolder(File dir) {
        return null;
    }

    
    public static void p(String str) {
        System.out.println(str);
    }
    
}