Simon Bang is totally right.
Anyway, I use the following recursive approach (which is pretty much the same)
(keep in mind that this is just sample code to illustrate the logic):
public void DownloadFtpFolder(string ftpFolderPath)
{
FtpFolder fo = new FtpFolder(folderPath);
foreach (FtpFile fi in fo.FtpFiles)
{
DownloadFtpFile(fi.FtpFilePath);
}
foreach (FtpFolder f in fo.FtpFolders)
{
DownloadFolder(f.FtpFolderpath);
}
}
public void DownloadFtpFile(string ftpFilePath)
{
}
You need a ftp library for downloading the actual files and navigating the folders, but I hope this illustrates how this could be done theoratically.
cheers
Andy