Jak usunąć folder w c#.

0

Tak jak w temacie.

0

przy usuwaniu wyskakuje mi taki błąd:
Ścieżka ma niedozwolony format.

0

To może byś wkleił kod bo ja wróżył z fusów nie będę co tam zrobiłeś...

0
 
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;
using System.IO;
using System.Runtime.InteropServices;

namespace WindowsFormsApplication4
{
    public partial class Form2 : Form
    {
        public Form3 _form3 = new Form3();
        [DllImport("Shell32.dll")]
        static extern int SHEmptyRecycleBin(IntPtr hwnd, string pszRootPath, RecycleFlag dwFlags);
        readonly FolderBrowserDialog _fbd = new FolderBrowserDialog();
        readonly OpenFileDialog ofDialog = new OpenFileDialog();
        public float liczba = 1;
        public string fileName;
        public Form2()
        {
            InitializeComponent();
        }
        private void Zamknij_Click(object sender, EventArgs e)
        {
            Close();
        }

        private void kropki_Click(object sender, EventArgs e)
        {
            MessageBox.Show("Wybierz miejsce katalogu");
            if (_fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                richTextBox1.Text = (_fbd.SelectedPath + "\\Niszczarka");
                Directory.CreateDirectory(_fbd.SelectedPath + "\\Niszczarka");
            }
            MessageBox.Show("Wybierz miejsce pliku do usunięcia");
            DialogResult result = ofDialog.ShowDialog();
            if (result == DialogResult.OK)
            {
                fileName = ofDialog.FileName;
                richTextBox2.Text = fileName;
            }
        }

        public void N_Click(object sender, EventArgs e)
        {
            _form3.Show();
        }

        enum RecycleFlag : int
        {
            SHERB_NOCONFIRMATION = 0x00000001,
            SHERB_NOPROGRESSUI = 0x00000001,
            SHERB_NOSOUND = 0x00000004
        }

        public void U()
        {
            Directory.Delete(_fbd.SelectedPath, true);
        }

        static private void Nic()
        {
                SHEmptyRecycleBin(IntPtr.Zero, null, Form2.RecycleFlag.SHERB_NOSOUND | Form2.RecycleFlag.SHERB_NOCONFIRMATION);
        }

        public void button1_Click(object sender, EventArgs e)
        {
            
        }
    }

Ogólnie void U jest wywoływany przez drugi program komneda form2.U();

1

A możesz mi pokazać w Twoim kodzie miejsce gdzie wyświetlasz dialog wyboru folderu? Ja tego nie widzę więc skąd tam ma być poprawna ścieżka?

            if (_fbd.ShowDialog() == DialogResult.OK)
            {
                Directory.Delete(_fbd.SelectedPath, true);
            }
1

kAzek odpowiedział Ci już czemu tak się dzieje, a ja tylko dopowiem, że w takiej sytuacji warto dodać brakepoint'a na linijce która wywala błąd i zobaczyć jakie wartości mają zmienne (w tym wypadku zobaczył byś, że zmienna _fbd.SelectedPath jest pusta).
Jednym słowem - korzystaj z debugger'a.

0

Gdy to zrobiłem usunęło mi cały pulpit oprócz kosza i przeglądarki :P

0

A to dlatego że ten link zapisany do pulpitu usunął po prostu katalog pulpit (jakbyś nie wiedział usuwa tylko rzeczy które niedawno zrobiłem na pulpicie)

1 użytkowników online, w tym zalogowanych: 0, gości: 1