Witam, to znowu ja, tym razem mój problem polega na usuwaniu folderów w ich całą zawartością. Do tej czynności napisałem taką o to funkcję:

        public static void RemoveDirectory(String ftpPath)
        {
            FtpWebRequest ftpWebRequest = (FtpWebRequest)WebRequest.Create(ConfigVar.FTP.Host + "/" + ftpPath);
            ftpWebRequest.EnableSsl = ConfigVar.FTP.EnableSsl;
            ftpWebRequest.Credentials = new NetworkCredential(ConfigVar.FTP.Login, ConfigVar.FTP.Password);
            ftpWebRequest.Method = WebRequestMethods.Ftp.RemoveDirectory;
            ftpWebRequest.GetResponse();
        }

.
Lecz funkcja GetResponse rzuca wyjątkiem WebException gdy folder nie jest pusty. Więc pierwsze na co wpadłem to wywołanie funkcji rekurencyjnie dla wszystkich folderów/plików w głąb zawartych w folderze do usunięcia. Do pobrania listy plików/folderów chciałem użyć metody ListDirectoryDetails, lecz przeczytałem, iż różne serwery FTP odpowiadają inaczej na to polecenie i nie da się uniwersalnie sparsować ResponseStream. No i wpadło mi do głowy aby napisać coś takiego:

 
//pseudokod
void RemoveAllDirectory(string path)
{
foreach(string child in FTP.Child(path))
{
try(RemoveAllDirectory(child)) // zakładam że "dziecko" jest folderem
catch(Exception e) (RemoveFile(child)) // myliłem się - to jednak plik
}

Tylko ten sposób mnie nie zaspokaja, gdyż nie wiem czy takie operowanie na wyjątkach jest dobre - pewnie nie . I dlatego pytam czy istnieje jakieś lepsze rozwiązanie ?