001 package railo.runtime.functions.file; 002 003 import railo.commons.io.res.Resource; 004 import railo.commons.io.res.util.ResourceAndResourceNameFilter; 005 import railo.commons.io.res.util.ResourceUtil; 006 import railo.commons.io.res.util.UDFFilter; 007 import railo.commons.lang.StringUtil; 008 import railo.runtime.PageContext; 009 import railo.runtime.exp.PageException; 010 import railo.runtime.tag.Directory; 011 012 public class DirectoryList { 013 014 public static Object call(PageContext pc , String path) throws PageException { 015 return call(pc, path, false, null, null, null); 016 } 017 018 public static Object call(PageContext pc , String path,boolean recurse) throws PageException { 019 return call(pc, path, recurse, null, null, null); 020 } 021 022 public static Object call(PageContext pc , String path,boolean recurse,String strListInfo) throws PageException { 023 return call(pc, path, recurse, strListInfo, null, null); 024 } 025 026 public static Object call(PageContext pc , String path,boolean recurse,String strListInfo,Object oFilter) throws PageException { 027 return call(pc, path, recurse, strListInfo, oFilter, null); 028 } 029 030 public static Object call(PageContext pc , String path,boolean recurse,String strListInfo,Object oFilter, String sort) throws PageException { 031 Resource dir=ResourceUtil.toResourceNotExisting(pc, path,pc.getConfig().allowRealPath()); 032 ResourceAndResourceNameFilter filter = UDFFilter.createResourceAndResourceNameFilter(oFilter); 033 034 int listInfo=Directory.LIST_INFO_ARRAY_PATH; 035 if(!StringUtil.isEmpty(strListInfo,true)){ 036 strListInfo=strListInfo.trim().toLowerCase(); 037 if("name".equalsIgnoreCase(strListInfo)){ 038 listInfo=Directory.LIST_INFO_ARRAY_NAME; 039 } 040 else if("query".equalsIgnoreCase(strListInfo)){ 041 listInfo=Directory.LIST_INFO_QUERY_ALL; 042 } 043 } 044 045 return Directory.actionList(pc, dir, null, Directory.TYPE_ALL, filter, filter, listInfo, recurse, sort); 046 047 048 //public static Object actionList(PageContext pageContext,Resource directory, String serverPassword, int type,ResourceFilter filter,ResourceAndResourceNameFilter nameFilter, 049 // int listInfo,boolean recurse,String sort) throws PageException { 050 051 } 052 }