Хорошо: потому что FtpWebRequest
не имеет состояния - нет способа изменить текущий каталог на FTP. К счастью, мы можем использовать одну из библиотек FTP с открытым исходным кодом. Вот пример с библиотекой FTPS AlexPilotti, которая доступна через NuGet
using (var client = new FTPSClient())
{
var address = Regex.Match(path, @"^(ftp://)?(\w*|.?)*/").Value.Replace("ftp://", "").Replace("/", "");
var dirs = Regex.Split(path.Replace(address, "").Replace("ftp://", ""), "/").Where(x => x.Length > 0);
client.Connect(address, credential, ESSLSupportMode.ClearText);
foreach (var dir in dirs)
{
try
{
client.MakeDir(dir);
}
catch (FTPException)
{
}
client.SetCurrentDirectory(dir);
}
}
}