private static void DeleteDirectoryRecursively(FTPConnection ftpConnect, string remotePath) { ftpConnect.ChangeWorkingDirectory(remotePath); var files = ftpConnect.GetFileInfos().Where(x => !x.Name.Contains(".") || x.Name.Contains("jpg")); foreach (var tmp in files) { if (!tmp.Dir) { ftpConnect.DeleteFile(tmp.Name); } } // delete all subdirectories in the remotePath directory foreach (var tmp in files) { if (tmp.Dir) { DeleteDirectoryRecursively(ftpConnect, tmp.Name); } } // delete this directory ftpConnect.ChangeWorkingDirectoryUp(); ftpConnect.DeleteDirectory(remotePath); }