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 45 46 47 48 49 50 51 52 53
|
public int Go(string srcTRIM, string destTRIM)
{
string fNAme = null, username = "username", pwd = "pwd";
FtpWebRequest ftp = (FtpWebRequest)FtpWebRequest.Create(srcTRIM);
ftp.Method = WebRequestMethods.Ftp.ListDirectory;
ftp.Credentials = new NetworkCredential(username, pwd);
ftp.UsePassive = false;
ftp.UseBinary = false;
FtpWebResponse wr = (FtpWebResponse)ftp.GetResponse();
System.IO.Stream stream = wr.GetResponseStream();
StreamReader sr = new StreamReader(stream);
WebResponse resp = (WebResponse)ftp.GetResponse();
byte[] buffer = new byte[1024];
int nbFiles = 0;
while ((fNAme = sr.ReadLine()) != null)
{
// je ne traite que les fichiers .txt ...
if (fNAme.Substring(fNAme.Length - 4, 4) == ".TXT")
{
nbFiles++;
// je ne conserve que le nom du fichier...
Uri adress = new Uri(srcTRIM + fNAme.Substring(fNAme.IndexOf("]") + 1, fNAme.Length - fNAme.IndexOf("]") - 1));
ftp = (FtpWebRequest)FtpWebRequest.Create(adress);
ftp.Method = WebRequestMethods.Ftp.DownloadFile;
ftp.UseBinary = false;
ftp.UsePassive = false;
ftp.Credentials = new NetworkCredential(username, pwd);
resp = ftp.GetResponse();
System.IO.Stream sm = resp.GetResponseStream();
FileStream output = new FileStream(destTRIM + fNAme.Substring(fNAme.IndexOf("]") + 1, fNAme.Length - fNAme.IndexOf("]") - 1), FileMode.OpenOrCreate);
int bytesRead = 0;
while (true)
{
bytesRead = sm.Read(buffer, 0, buffer.Length);
output.Write(buffer, 0, bytesRead);
if (bytesRead <= 0)
{
break;
}
}
sm.Close();
output.Flush();
output.Close();
}
}
}
sr.Close();
return nbFiles;
} |
Partager