Caricamento di più file in .NET tramite FTP
Domanda
Sto pensando di utilizzare codice seguente, ma voglio trasferire centinaia di file e non vedo praticabile per collegare e scollegare in ogni trasferimento di file.
request = (FtpWebRequest) FtpWebRequest.Create(FtpAddress + file);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(User, Pass);
request.UsePassive = IsPassive;
request.UseBinary = true;
request.KeepAlive = false;
FileStream fs = File.OpenRead("");
byte[] buffer = new byte[fs.Length];
fs.Read(buffer, 0, buffer.Length);
fs.Close();
Stream ftpStream = request.GetRequestStream();
ftpStream.Write(buffer, 0, buffer.Length);
ftpStream.Close();
Quali opzioni ho a disposizione per caricare tutti questi file utilizzando una singola connessione?
Soluzione
Non ho verificato che questo è vero, ma nella mia rapida 30 secondi di ricerca, se si imposta ??p>
request.KeepAlive = true;
su ogni richiesta di creare, tranne l'ultimo, a quanto pare solo il primo FtpWebRequest effettua una connessione di accesso completo.
Poi, quando si crea l'ultima FtpWebRequest, set
request.KeepAlive = false;
e si chiuderà la connessione quando fatto. È possibile verificare questo se si ha accesso ai log del server FTP.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow