15/02/2007
Codigo con el que podemos realizar una busqueda recursiva.
Código:
<%@ page import="org.opencms.file.CmsObject"%>
<%@ page import="org.opencms.jsp.CmsJspActionElement"%>
<%@ page import="org.opencms.file.CmsFolder"%>
<%@ page import="org.opencms.file.CmsFile"%>
<%@ page import="org.opencms.main.CmsException" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%!
public boolean firstExec = true;
public Vector listFilesRecursive(CmsObject cms,
String path) throws CmsException
{
CmsFolder cmsfolder =
null;
CmsFile cmsfile = null;
CmsFile CmsFileNoDir =
null;
String pathDir = "";
String pathFile = "";
List listFiles = null;
List listFolders =
cms.getSubFolders(path);
Vector filesfolders = new
Vector();
if (firstExec == true)
{
List listFilesNoDir = cms.getFilesInFolder(path,
org.opencms.file.CmsResourceFilter.requireType(109));
for(int m=0; m<listFilesNoDir.size(); m++)
{
CmsFileNoDir = (CmsFile) listFilesNoDir.get(m);
pathFile = path + CmsFileNoDir.getName();
if (pathFile.indexOf("/sites/Web")!=-1)
{
String sinWeb[] = pathFile.split("/sites/Web");
pathFile = sinWeb[1];
}
filesfolders.addElement(pathFile);
}
firstExec = false;
}
for(int i=0;
i<listFolders.size(); i++)
{
cmsfolder = (CmsFolder) listFolders.get(i);
pathDir =
cmsfolder.getRootPath();
if
(pathDir.indexOf("/sites/Web")!=-1)
{
String sinToro[] = pathDir.split("/sites/Toro");
pathDir = sinToro[1];
}
//filesfolders.addElement(pathDir);
listFiles
= cms.getFilesInFolder(pathDir, org.opencms.file.CmsResourceFilter.requireType(109));
for(int k=0;
k<listFiles.size(); k++)
{
cmsfile = (CmsFile) listFiles.get(k);
path = pathDir + cmsfile.getName();
filesfolders.addElement(path);
}
Vector aVector =
listFilesRecursive(cms, pathDir);
int j = 0;
while (j <
aVector.size())
{
filesfolders.addElement(aVector.get(j));
j++;
}
}
return filesfolders;
}
%>
<%
try
{
CmsJspActionElement cmsActionElem = new
CmsJspActionElement(pageContext, request, response);
CmsObject cms = cmsActionElem.getCmsObject();
Vector filesfolders = new Vector();
filesfolders = listFilesRecursive(cms,
"/CARPETA_LISTAR/");
int j=0;
for(j=0; j<filesfolders.size(); j++)
{
out.println(filesfolders.get(j) + "<br>");
}
out.println("<BR>"+j);
}
catch (CmsException e)
{
out.println(e);
}
%>