none
No se borra una carpeta al presionar el botón. RRS feed

  • Pregunta

  • Hola, estoy planeando hacer una aplicación en Visual studio 2015 que borre una carpeta específica, la probé y no me funcionó, la carpeta no se borró y la app sigue funcionando como si nada hubiera pasado, ayudenme, gracias.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
    namespace WindowsFormsApplication8
    {
        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            { }
    
            public class SimpleFileDelete
    {
        static void main()
        {
                    // Delete a file by using File class static method...
                    if (System.IO.File.Exists(@"C:\\Users\\AppData\Local\Chromium\"))
            {
                // Use a try block to catch IOExceptions, to
                // handle the case of the file already being
                // opened by another process.
                try
                {
                    System.IO.File.Delete(@"C:\\Users\\canom_000\AppData\Local\Chromium");
                }
                catch (System.IO.IOException e)
                {
                    Console.WriteLine(e.Message);
                    return;
                }
                    }
                }
            }
        }
    }

    viernes, 5 de agosto de 2016 17:30

Respuestas

  • Hola MauBlue,

    Pero si vas a borrar una carpeta, porque usas File ? Este sirve para usar archivos.

    Tendrías que usar el Directory.

                string chromePath = @"C:\Users\AppData\Local\Chromium";
    
                if (Directory.Exists(chromePath))
                {
                    Directory.Delete(chromePath);
                }

    Pero si esa carpeta tiene archivos, no te permitirá borrarlos con ese comando. Por lo que tienes que borrar el contenido.

                string chromePath = @"C:\Users\AppData\Local\Chromium";
    
                if (Directory.Exists(chromePath))
                {
                    DirectoryInfo di = new DirectoryInfo(chromePath);
    
                    //Eliminamos todos los archivos
                    foreach (FileInfo file in di.GetFiles())
                        file.Delete();
    
                    //Eliminamos todas las carpetas
                    foreach (DirectoryInfo dir in di.GetDirectories())
                        dir.Delete(true);
    
                    //Sin nada, eliminamos la carpeta Chromium
                    Directory.Delete(chromePath);
    
                    MessageBox.Show("Directorio eliminado!");
                }

    Por último, cuando usas el @ en el Path, ya no necesitas usar los //.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Propuesto como respuesta Willams Morales viernes, 5 de agosto de 2016 18:08
    • Marcado como respuesta MauBlue viernes, 5 de agosto de 2016 22:58
    viernes, 5 de agosto de 2016 17:49

Todas las respuestas

  • Por cierto, si ven que hay mensajes con // es por qué copié el código porque no sabía cómo hacerlo.
    viernes, 5 de agosto de 2016 17:31
  • Hola MauBlue,

    Pero si vas a borrar una carpeta, porque usas File ? Este sirve para usar archivos.

    Tendrías que usar el Directory.

                string chromePath = @"C:\Users\AppData\Local\Chromium";
    
                if (Directory.Exists(chromePath))
                {
                    Directory.Delete(chromePath);
                }

    Pero si esa carpeta tiene archivos, no te permitirá borrarlos con ese comando. Por lo que tienes que borrar el contenido.

                string chromePath = @"C:\Users\AppData\Local\Chromium";
    
                if (Directory.Exists(chromePath))
                {
                    DirectoryInfo di = new DirectoryInfo(chromePath);
    
                    //Eliminamos todos los archivos
                    foreach (FileInfo file in di.GetFiles())
                        file.Delete();
    
                    //Eliminamos todas las carpetas
                    foreach (DirectoryInfo dir in di.GetDirectories())
                        dir.Delete(true);
    
                    //Sin nada, eliminamos la carpeta Chromium
                    Directory.Delete(chromePath);
    
                    MessageBox.Show("Directorio eliminado!");
                }

    Por último, cuando usas el @ en el Path, ya no necesitas usar los //.

    Saludos.


    JC NaupaCrispín
    Lima - Perú

    La magia no existe, la programación SI

    • Propuesto como respuesta Willams Morales viernes, 5 de agosto de 2016 18:08
    • Marcado como respuesta MauBlue viernes, 5 de agosto de 2016 22:58
    viernes, 5 de agosto de 2016 17:49
  • Hola, muchas gracias, pero me podrías hacer el código con los archivos de Chromium? te lo agradecería de forma infinita.
    viernes, 5 de agosto de 2016 18:28