none
como obtener los archivos de acuerdo a la extencion? RRS feed

  • Pregunta

  • como puedo obtener los archivos de una carpeta que su extension sea diferente a .gz?

    los archivo que que quiero eliminar son de tipo .bak

    gracias de ante mano por sus comentarios

    viernes, 18 de agosto de 2017 19:54

Respuestas

  • ¿No basta con indicar el tipo de extensión '*.bak' en el parámetro 'searchPattern'?

    foreach (string file in Directory.GetFiles(@"Ruta", "*.bak"))
    	File.Delete(file);


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Carlos Ramos G sábado, 19 de agosto de 2017 16:00
    viernes, 18 de agosto de 2017 20:36
  • Buenas,

    Puedes probar asi:

    string strPath = @"C:/"; //Aqui pones la ruta donde quieres borrar
    string strFormatoExluir = ".gz"; //Aqui pones la extension que NO QUIERES BORRAR
    foreach (string strFile in Directory.GetFiles(strPath).Where(x=>!x.EndsWith(strFormatoExluir)))
    {
        //Aqui haces el borrar
        File.Delete(strFile);
    }


    En el caso de que quieras borrar solo una extension:

    string strPath = @"C:/"; //Aqui pones la ruta donde quieres borrar
    string strFormatoBorrar = ".bak"; //Aqui pones la extension que quieres borrar
    foreach (string strFile in Directory.GetFiles(strPath).Where(x=>x.EndsWith(strFormatoBorrar)))
    {
        //Aqui haces el borrar
        File.Delete(strFile);
    }
    La diferencia esta en la clausula where, en la primera indicas que no quieres que coincida (para excluirlo) y en otra que coincida (para borrar solo esa)

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!



    viernes, 18 de agosto de 2017 20:21

Todas las respuestas

  • Buenas,

    Puedes probar asi:

    string strPath = @"C:/"; //Aqui pones la ruta donde quieres borrar
    string strFormatoExluir = ".gz"; //Aqui pones la extension que NO QUIERES BORRAR
    foreach (string strFile in Directory.GetFiles(strPath).Where(x=>!x.EndsWith(strFormatoExluir)))
    {
        //Aqui haces el borrar
        File.Delete(strFile);
    }


    En el caso de que quieras borrar solo una extension:

    string strPath = @"C:/"; //Aqui pones la ruta donde quieres borrar
    string strFormatoBorrar = ".bak"; //Aqui pones la extension que quieres borrar
    foreach (string strFile in Directory.GetFiles(strPath).Where(x=>x.EndsWith(strFormatoBorrar)))
    {
        //Aqui haces el borrar
        File.Delete(strFile);
    }
    La diferencia esta en la clausula where, en la primera indicas que no quieres que coincida (para excluirlo) y en otra que coincida (para borrar solo esa)

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!



    viernes, 18 de agosto de 2017 20:21
  • ¿No basta con indicar el tipo de extensión '*.bak' en el parámetro 'searchPattern'?

    foreach (string file in Directory.GetFiles(@"Ruta", "*.bak"))
    	File.Delete(file);


    Nuestra profesión exige tener pasión por resolver problemas de una manera óptima y eficiente.
    • Marcado como respuesta Carlos Ramos G sábado, 19 de agosto de 2017 16:00
    viernes, 18 de agosto de 2017 20:36
  • gracias por el dato pero las "x " que representan? por que no entiendo ahi


    sábado, 19 de agosto de 2017 15:53
  • Buenas, 

    Las x representan cada objeto de la iteración, es como identificar al propio objeto en link (puedes usar x o el nombre que quieras,  pero es "nombre" => "nombre".campo == lo que sea. 

    Atte


    No olvides votar si mi comentario te ha ayudado y marcarlo como respuesta si ha sido la solución!

    sábado, 19 de agosto de 2017 16:35