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:
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 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>"); } }
Código:
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.object fs, f, f1, fc, s; fs = Server.CreateObject("Scripting.FileSystemObject"); f = fs.GetFolder(FolderToCheck); fc = f.Files;
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.