/** * Implements the CFML Function directoryexists */ package railo.runtime.functions.system; import railo.commons.io.res.Resource; import railo.commons.io.res.util.ResourceUtil; import railo.runtime.PageContext; import railo.runtime.exp.PageException; import railo.runtime.ext.function.Function; import railo.runtime.op.Caster; public final class DirectoryExists implements Function { public static boolean call(PageContext pc , String path) throws PageException { return call(pc, path,pc.getConfig().allowRealPath()); } public static boolean call(PageContext pc , String path,Object oAllowRealPath) throws PageException { Resource file; if(oAllowRealPath==null) return call(pc, path); boolean allowRealPath = Caster.toBooleanValue(oAllowRealPath); if(allowRealPath) { file=ResourceUtil.toResourceNotExisting(pc, path,allowRealPath); // TODO das else braucht es eigentlich nicht mehr } else { // ARP file=pc.getConfig().getResource(path); if(file!=null && !file.isAbsolute()) return false; } pc.getConfig().getSecurityManager().checkFileLocation(file); return file.isDirectory() && file.exists(); } }