package com.mindprod.htmlmacros; import java.io.File; import java.io.IOException; public class FilePlus { private static final boolean DEBUG = true; private static String websiteHost = "mindprod.com"; private static String mirror = "E:\\mindprod"; public static void setWebSiteHost( String websiteHost ) { Tools.websiteHost = websiteHost; } // where the website in mirrored locally. This is the master copy. public static void setmirror( String mirror ) { Tools.mirror = mirror; } public static String getImagesDir( File fileBeingProcessed ) { return getLevelString( fileBeingProcessed ) + "images"; } public static String getBookcoversDir( File fileBeingProcessed ) { return getLevelString( fileBeingProcessed ) + "bookcovers"; } public static String getCanonicalNameLocally ( File fileBeingProcessed ) { try { return fileBeingProcessed.getCanonicalPath(); } catch ( IOException e ) { return fileBeingProcessed.getAbsolutePath(); } } public static String getCanonicalNameOnWeb ( File fileBeingProcessed ) { // chop of the lead E:/mindprod and prepend http://mindprod.com return "http://" + websiteHost + "/" + getNameRelativeToMirror( fileBeingProcessed ); } /** * result with / in names */ public static String getNameRelativeToMirror( File fileBeingProcessed ) { return getCanonicalNameLocally( fileBeingProcessed ).substring( mirror.length()+1 ).replace( '\\', '/' ); } /** * * */ public static String getBasicNameWithExtension ( File fileBeingProcessed ) { return fileBeingProcessed.getName(); } /** * * */ public static String getBasicNameWithoutExtension ( File fileBeingProcessed ) { String name = fileBeingProcessed.getName(); int place = name.lastIndexOf( '.' ); if ( place < 0 ) { return name; } else { return name.substring ( 0, place ); } } /** * * */ public static String getExtension ( File fileBeingProcessed ) { String name = fileBeingProcessed.getName(); int place = name.lastIndexOf( '.' ); if ( place < 0 ) { return ""; } else { return name.substring ( place+1 ); } } public static int getLevel( File fileBeingProcessed ) { String relative = getNameRelativeToMirror( fileBeingProcessed ); int depth = 0; int length = relative.length(); for ( int i=0; i