Tak jak w temacie.
przy usuwaniu wyskakuje mi taki błąd:
Ścieżka ma niedozwolony format.
To może byś wkleił kod bo ja wróżył z fusów nie będę co tam zrobiłeś...
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();
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);
}
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.
Gdy to zrobiłem usunęło mi cały pulpit oprócz kosza i przeglądarki :P
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)