package railo.runtime.functions.file;
import railo.commons.io.res.Resource;
import railo.commons.io.res.util.ResourceAndResourceNameFilter;
import railo.commons.io.res.util.ResourceUtil;
import railo.commons.io.res.util.UDFFilter;
import railo.commons.lang.StringUtil;
import railo.runtime.PageContext;
import railo.runtime.exp.PageException;
import railo.runtime.tag.Directory;
public class DirectoryList {
public static Object call(PageContext pc , String path) throws PageException {
return call(pc, path, false, null, null, null);
}
public static Object call(PageContext pc , String path,boolean recurse) throws PageException {
return call(pc, path, recurse, null, null, null);
}
public static Object call(PageContext pc , String path,boolean recurse,String strListInfo) throws PageException {
return call(pc, path, recurse, strListInfo, null, null);
}
public static Object call(PageContext pc , String path,boolean recurse,String strListInfo,Object oFilter) throws PageException {
return call(pc, path, recurse, strListInfo, oFilter, null);
}
public static Object call(PageContext pc , String path,boolean recurse,String strListInfo,Object oFilter, String sort) throws PageException {
Resource dir=ResourceUtil.toResourceNotExisting(pc, path,pc.getConfig().allowRealPath());
ResourceAndResourceNameFilter filter = UDFFilter.createResourceAndResourceNameFilter(oFilter);
int listInfo=Directory.LIST_INFO_ARRAY_PATH;
if(!StringUtil.isEmpty(strListInfo,true)){
strListInfo=strListInfo.trim().toLowerCase();
if("name".equalsIgnoreCase(strListInfo)){
listInfo=Directory.LIST_INFO_ARRAY_NAME;
}
else if("query".equalsIgnoreCase(strListInfo)){
listInfo=Directory.LIST_INFO_QUERY_ALL;
}
}
return Directory.actionList(pc, dir, null, Directory.TYPE_ALL, filter, filter, listInfo, recurse, sort);
//public static Object actionList(PageContext pageContext,Resource directory, String serverPassword, int type,ResourceFilter filter,ResourceAndResourceNameFilter nameFilter,
// int listInfo,boolean recurse,String sort) throws PageException {
}
}