1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
public override void UploadFileToFtp(string ftpServerUri, string completeLocalPath, Ftp ftpToUpload)
{
CreateSubDirectories(ftpToUpload);
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(ftpServerUri);
request.Credentials = new NetworkCredential(ftpToUpload.login, ftpToUpload.password);
//Le reste de ton traitement
}
private static void CreateSubDirectories(Ftp ftpToUpload)
{
IList<string> subDirListWithoutEmptyString = ftpToUpload.directory.Split(new string[] { "/" }, StringSplitOptions.RemoveEmptyEntries);
StringBuilder subDirBuilder = new StringBuilder();
for (int i = 0; i < subDirListWithoutEmptyString.Count; i++)
{
if (!String.IsNullOrEmpty(subDirListWithoutEmptyString[i]))
{
if (i > 0)
{
subDirBuilder.Append("/" + subDirListWithoutEmptyString[i-1]);
}
String uriDirectory = ftpToUpload.host + subDirBuilder;
IList<string> lstSubDir = GetListSubDir(uriDirectory, ftpToUpload);
if (lstSubDir != null)
{
if (!lstSubDir.Contains(subDirListWithoutEmptyString[i])) //if subdir does not exist --> Creation
{
FtpWebRequest requestCreateDirectory = (FtpWebRequest)WebRequest.Create(uriDirectory + "/" +subDirListWithoutEmptyString[i]);
requestCreateDirectory.Credentials = new NetworkCredential(ftpToUpload.login, ftpToUpload.password);
requestCreateDirectory.KeepAlive = false;
requestCreateDirectory.Method = WebRequestMethods.Ftp.MakeDirectory;
using (FtpWebResponse responseCreateDirectory = (FtpWebResponse)requestCreateDirectory.GetResponse())
{
responseCreateDirectory.Close();
}
}
}
}
}
} |
Partager