none
Como mostrar archivos guardados en carpetas???

    Question

  • Hola, verán.. me gustaría saber si me pueden dar ejemplos de codigos en C#.. asp.net.. donde se muestre un archivo de una carpeta.. en una página asp.net.

    En pocas palabras quiero mostrar en mi pagina asp.net los archivos que se encuentran en cierta o varias carpetas de cierta ubicacion... como se puede hacer esto??? Tengo este codigo que me encontré por internet.. lo modifiqué pero aun no lo termino de comprender..

     string dirname = "tempimgbin/";
                            string workingDirectory = common_conn + path2;
                            DirectoryInfo dirInfo = new DirectoryInfo(workingDirectory);
                            FileInfo[] pics = dirInfo.GetFiles("*.*"); // was *.jpg

                            foreach (FileInfo fi in pics)
                            {
                                //copy images to temp folder.
                                File.Copy(workingDirectory + fi.Name, Server.MapPath(dirname + ped + "/") + ped + "_" + fi.Name, true);

                                //add html to results label.
                                lbl_filelist.Text += "&raquo; <a href=\"" + dirname + path2 + @"/" + fi.Name + "\" target=\"_blank\" title=\"Esta liga se abrirá en una nueva ventana.\">" + ped + fi.Name + "</a><br>\n";
                            }

    Hay alguna forma más fácil de hacer esto??? o no más fácil.. más simple?? o solamente otra forma??? jaja.. DE antemano.. doy las gracias!


    Joy Montero
    Tuesday, November 16, 2010 6:37 PM

Answers

  • Hola.. solucioné esto.. solo me falta otra cosa.. pero creo que abriré otra pregunta.. lo arreglé solo guardando la informacion del fileInfo en un Listbox.. al final solo lo acomodé de esta forma:

     

     foreach (string lista in Directory.GetFiles(pathp + @"\" + ddl_docs.Items[i].Text, "*.*", SearchOption.AllDirectories))
                            {
                                // extraer el nombre de la ruta
                                string listas = lista.Substring(lista.LastIndexOf("\\") + 1).ToString();
                                // Agregar el valor al listbox
                                ListBox1.Items.Add(listas.ToString());
                            }

     

    Así ya me muestra todos los archivos que se encuentran en las carpetas. gracias por la ayuda!


    Joy Montero
    • Marked as answer by Joy Montero Saturday, November 20, 2010 6:57 PM
    Saturday, November 20, 2010 6:57 PM

All replies

  • hola

    en este articulo

    [ASP.NET] - Guardar Imagen base de datos

    en la seccion "Listar archivos en una carpeta del sitio"

    muestro como mostrar los archivos de una carpeta

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, November 16, 2010 6:48 PM
  • Hola leandro.. vi el codigo.. solo tengo una duda.. es respecto donde dice Server.PathMap.. Ahi como le puedo acomodar el path mío??? estoy utilizando dos variables para crear el path (dado que se crea segun opciones del usuario)..

    Mas omenos saqué esto pero me marca error que se necesita un método.. no una variable..  (o algo así)..

    DirectoryInfo dirInfo = new DirectoryInfo(pathp("~/files")); <====> pathp es el path de donde quiero que me lea los archivos..
                        FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);

                        GridView1.DataSource = fileInfo;
                        GridView1.DataBind();

     


    Joy Montero
    Tuesday, November 16, 2010 7:26 PM
  • hola

    el tema es que el pathp() donde esta definido ?

    la verdad no conozco ese metodo

     

    saludo


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, November 16, 2010 7:35 PM
  • No.. el nombre de mi variable es pathp.. ésta contiene la dirección de las carpetas. O como le acomodo ahí de tal forma que de donde me busque mis archivos sea del path mío??
    Joy Montero
    Tuesday, November 16, 2010 7:40 PM
  • pero si pathp es una varieble porque la usas como un metodo

    o sea estasusando pathp con los () pasandole un valor, eso es un metodo no una variable

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, November 16, 2010 7:42 PM
  • Si, por eso pregunto que como le puedo poner ahí??? Tomando en cuenta que pathp es una variable en la cual tengo la direccion. le tenia Server.Mappath como método.. pero no mostraba nada.. entonces que método es el correcto a utilizar en este caso???

    Joy Montero
    Tuesday, November 16, 2010 7:48 PM
  • hola

    si esa variable tiene la ruta directa la puede usar directamente, no necesitas del server.matpath

    pero ten en cuenta temas de segurodad si la carpeta esta por fuera del sitio, ya que por lo general hay temas de acceso

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, November 16, 2010 8:01 PM
  • Disculpa sigue sin mostrarme los archivos.. te dejo el codigo a ver si te da una idea de donde estoy equivocada..

     string ped = Request.QueryString["ped"];
            string razonsoc = Request.QueryString["razonsoc"];
            string adu = Request.QueryString["adu"];
            string anio = 20 + Session["anio"].ToString();
            string ala = Session["anio"].ToString();
            string nn = "";
            switch (Session["aduana"].ToString())//(ddladuana.SelectedValue) //DropDownList1.SelectedValue)
            {
                case "270": nn = @"\\1.1.1.2\datos\Digitalizacion PIEDRAS\" + DateTime.Today.Year.ToString();break ;// + "\" + Session["anio"].ToString() + Session["aduana"].ToString() + "3183" + ped; break;
                case "271": nn = @"\\1.1.1.1\share\Digitalizacion\" + DateTime.Today.Year.ToString() ; break;
                case "520": nn = @"\\1.1.1.3" ; break;
                case "800": nn = @"\\1.1.1.2\datos\Digitalizacion COLOMBIA\" + DateTime.Today.Year.ToString(); break;
                case "240": nn = @"\\1.1.1.2\datos\Digitalizacion LAREDO\" + DateTime.Today.Year.ToString(); break;
              
            }
            string path2 = @"\" + Session["anio"].ToString() + Session["aduana"].ToString() + "3183" + ped;
            common_conn = nn;
            Session["recti"].ToString() ;
            cbrectif.Checked = Convert .ToBoolean( Session["recti"]);
            if (cbrectif.Checked)
            {
                if (Directory.Exists(nn + path2))
                {
                    ckfin.Checked = true;
                    for (int i = 0; i < ddl_docs.Items.Count; i++)
                    {
                        string pathp = nn + path2;
                        if (!Directory.Exists(pathp + @"\" + ddl_docs.Items[i].Text))
                        {
                            ckfin.Checked = false;
                            break;
                        }
                           
                        DirectoryInfo dirInfo = new DirectoryInfo(pathp + @"\" + ddl_docs.Items[i].Text);
                        FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);

                        GridView1.DataSource = fileInfo;
                        GridView1.DataBind();
                    }
                }
                else
                {
                  
                    Directory.CreateDirectory(nn + path2 + "Rect");

                }
                if (ped == null)
                {
                    Response.Redirect("default.aspx");
                }
            }
            else
            {

                if (Directory.Exists(nn + path2))
                {
                    for (int i = 0; i < ddl_docs.Items.Count; i++)
                    {
                        string pathp = nn + path2;
                        if (!Directory.Exists(pathp + @"\" + ddl_docs.Items[i].Text))
                        {
                            ckfin.Checked = false;
                            break;
                        }
                       
                        DirectoryInfo dirInfo = new DirectoryInfo(pathp + @"\" + ddl_docs.Items[i].Text);
                        FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);

                        GridView1.DataSource = fileInfo;
                        GridView1.DataBind();
                    }
                }
                else
                {
                  
                    Directory.CreateDirectory(nn + path2);

                  
                }
                if (ped == null)
                {
                    Response.Redirect("default.aspx");
                }
                
            }

     

    Gracias por la ayuda, ideas sugeridas, etc...!!!


    Joy Montero
    Tuesday, November 16, 2010 11:54 PM
  • Disculpa sigue sin mostrarme los archivos.. te dejo el codigo a ver si te da una idea de donde estoy equivocada..

     string ped = Request.QueryString["ped"];
            string razonsoc = Request.QueryString["razonsoc"];
            string adu = Request.QueryString["adu"];
            string anio = 20 + Session["anio"].ToString();
            string ala = Session["anio"].ToString();
            string nn = "";
            switch (Session["aduana"].ToString())//(ddladuana.SelectedValue) //DropDownList1.SelectedValue)
            {
                case "270": nn = @"\\1.1.1.2\datos\Digitalizacion PIEDRAS\" + DateTime.Today.Year.ToString();break ;// + "\" + Session["anio"].ToString() + Session["aduana"].ToString() + "3183" + ped; break;
                case "271": nn = @"\\1.1.1.1\share\Digitalizacion\" + DateTime.Today.Year.ToString() ; break;
                case "520": nn = @"\\1.1.1.3" ; break;
                case "800": nn = @"\\1.1.1.2\datos\Digitalizacion COLOMBIA\" + DateTime.Today.Year.ToString(); break;
                case "240": nn = @"\\1.1.1.2\datos\Digitalizacion LAREDO\" + DateTime.Today.Year.ToString(); break;
              
            }
            string path2 = @"\" + Session["anio"].ToString() + Session["aduana"].ToString() + "3183" + ped;
            common_conn = nn;
            Session["recti"].ToString() ;
            cbrectif.Checked = Convert .ToBoolean( Session["recti"]);
            if (cbrectif.Checked)
            {
                if (Directory.Exists(nn + path2))
                {
                    ckfin.Checked = true;
                    for (int i = 0; i < ddl_docs.Items.Count; i++)
                    {
                        string pathp = nn + path2;
                        if (!Directory.Exists(pathp + @"\" + ddl_docs.Items[i].Text))
                        {
                            ckfin.Checked = false;
                            break;
                        }
                           
                        DirectoryInfo dirInfo = new DirectoryInfo(pathp + @"\" + ddl_docs.Items[i].Text);
                        FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);

                        GridView1.DataSource = fileInfo;
                        GridView1.DataBind();
                    }
                }
                else
                {
                  
                    Directory.CreateDirectory(nn + path2 + "Rect");

                }
                if (ped == null)
                {
                    Response.Redirect("default.aspx");
                }
            }
            else
            {

                if (Directory.Exists(nn + path2))
                {
                    for (int i = 0; i < ddl_docs.Items.Count; i++)
                    {
                        string pathp = nn + path2;
                        if (!Directory.Exists(pathp + @"\" + ddl_docs.Items[i].Text))
                        {
                            ckfin.Checked = false;
                            break;
                        }
                       
                        DirectoryInfo dirInfo = new DirectoryInfo(pathp + @"\" + ddl_docs.Items[i].Text);
                        FileInfo[] fileInfo = dirInfo.GetFiles("*.*", SearchOption.AllDirectories);

                        GridView1.DataSource = fileInfo;
                        GridView1.DataBind();
                    }
                }
                else
                {
                  
                    Directory.CreateDirectory(nn + path2);

                  
                }
                if (ped == null)
                {
                    Response.Redirect("default.aspx");
                }
                
            }

     

    Gracias por la ayuda, ideas sugeridas, etc...!!!


    Joy Montero
    Hola.. verán sigo con el problema.. pero con el codigo este de arriba me di cuenta que lo que ahce es mostrarme los archivos que se encuentran en la última carpeta en la que busca.. pero lo que quiero es pues también me muestre los archivos encontrados en las otras carpetas. Ejemplo.. tengo 3 carpetas en las cuales verifico si tienen archivos y si acaso tienen pues quiero mostrarlos.. pero con el codigo este que tengo me muestra solo los archivos de la carpeta 3 (sin mostrarme los archivos de las carpetas 1 y 2). Entonces como podria acomodar el codigo para que me haga esto que dije??? De antemano doy las Gracias!

    Joy Montero
    Thursday, November 18, 2010 7:03 PM
  • Hola.. solucioné esto.. solo me falta otra cosa.. pero creo que abriré otra pregunta.. lo arreglé solo guardando la informacion del fileInfo en un Listbox.. al final solo lo acomodé de esta forma:

     

     foreach (string lista in Directory.GetFiles(pathp + @"\" + ddl_docs.Items[i].Text, "*.*", SearchOption.AllDirectories))
                            {
                                // extraer el nombre de la ruta
                                string listas = lista.Substring(lista.LastIndexOf("\\") + 1).ToString();
                                // Agregar el valor al listbox
                                ListBox1.Items.Add(listas.ToString());
                            }

     

    Así ya me muestra todos los archivos que se encuentran en las carpetas. gracias por la ayuda!


    Joy Montero
    • Marked as answer by Joy Montero Saturday, November 20, 2010 6:57 PM
    Saturday, November 20, 2010 6:57 PM