Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/07/2009, 04:56
nacius
 
Fecha de Ingreso: julio-2009
Mensajes: 9
Antigüedad: 15 años, 6 meses
Puntos: 0
Buscador de fichero pagina aspx

Hola, es la primera vez que posteo en este foro y es que estoy algo perdido, estoy desarrollando un sitio web en aspx y para el necesito introducir un buscador de documentos de una carpeta que forma parte del proyecto.

He estado buscando información sobre como sería la forma de hacerlo y siempre me encuentro con lo mismo.

Usar "Scripting.FileSystemObject" para acceder a los directorios y manejar los ficheros, es mas...he encontrado código que hace exactamente lo que busco.

Código:
public partial class searchfiles : System.Web.UI.Page
{
    String SearchTerm;
    String FolderName;
    String SearchResponse;
    protected void Page_Load(object sender, EventArgs e)
    {
       SearchTerm = Request.Form[0];

       String Novalid=" a b c d e f g h i j k l m n o p q r s t u v w x y z yes no and more";
       String NovalidResponse ="Go back and try again. Your search term is very common";
 

        if (SearchTerm.IndexOf(Novalid)==0){

            Response.Write ("<CENTER><H2>Search results</H2></CENTER>");
 
        FolderName= "Documentos";
        ShowList();

        }else{
            Response.Write(NovalidResponse);
        }
        SearchResponse="";
     }

    public void ShowList(){

    String FolderToCheck = Server.MapPath("./"+FolderName+"/");
        object fs, f, f1, fc, s;
        
    fs = Server.CreateObject("Scripting.FileSystemObject");
    f = fs.GetFolder(FolderToCheck);
    fc = f.Files;
    
        foreach(object f1 in fc){

         Wfile = f1.name;
          if (right(Wfile, 4)==".pdf"){
            Wfile2 = FolderToCheck & Wfile;
            Set fs = CreateObject("Scripting.FileSystemObject");
            Set a = fs.OpenTextFile(Wfile2);
            ct = a.ReadAll;
            a.close;
            ct2=lcase(ct);
            SearchTerm2 = lcase(SearchTerm);

                  if (instr(ct2,SearchTerm2>0)) {

                      if (instr(ct,"</title>")>0) {
                  longitud=instr(ct,"</title>");
                  longitud=longitud -1;
                          ct=left(ct,longitud);
                          longitud2=len(ct);
                  longitud=instr(ct,"<title>");
                  longitud=longitud2 -longitud -6;
                          ct=right(ct,longitud);
                    }else{
                        if (instr(ct,"</TITLE>")>0) {
                    longitud=instr(ct,"</TITLE>");
                    longitud=longitud -1;
                            ct=left(ct,longitud);
                            longitud2=len(ct);
                    longitud=instr(ct,"<TITLE>");
                    longitud=longitud2 -longitud -6;
                            ct=right(ct,longitud);
                        }
                    }

                    SearchResponse= SearchResponse +"<TR><TD>"+ ct + "</TD><TD ALIGN=CENTER VALIGN=MIDDLE>" + " <A HREF=" + "/" + FolderName + "/" + Wfile +"> More </A></TD></TR>";
          longitud=0;
                  ct="";

}
}

Response.Write("<HTML><HEAD><TITLE>Search results</TITLE></HEAD><BODY BGCOLOR=FFFFFF><CENTER>"); 

Response.Write("<TABLE BORDER=0 WIDTH=550><TR><TD BGCOLOR=C0C0C0><FONT SIZE=5><B>Search Results</B></FONT></TD></TR></TABLE>"); 

Response.Write ("<TABLE BORDER=0 WIDTH=550>"); 
if (SearchResponse!="") {
Response.Write(SearchResponse);
}else
Response.Write("<TR><TD>The specified term or phrase was not found</TD></TR>");
}
Response.Write("</TABLE>");

Response.Write("</CENTER></BODY></HTML>");

}

}
En principio eso hace lo que necesito, el problema es que no lo encuentro en C# solo en VB y he ido modificandolo paso a paso de arriba abajo, pero cuando llego a
Código:
object fs, f, f1, fc, s;
        
    fs = Server.CreateObject("Scripting.FileSystemObject");
    f = fs.GetFolder(FolderToCheck);
    fc = f.Files;
no se como seguir, donde yo declaro object en el código original declara Set, el problema está en que cuando compila, fs es de tipo object y no reconocer el método GetFolder.

Si alguien puede darme algo de ayuda, bien la solucion o algo alternativo para buscar archivos en un directorio por nombre y sacar la ruta en el resultado.

Gracias.