Giriş
Şu satırı dahil ederiz.
Constructor
Şöyle yaparız.
Credentials Alanı
Şöyle yaparız.
Örnek ver. Sunucuya veri göndermek (upload) için kullanılır.
GetResponseStream metodu
Şöyle yaparız. Sunucunun cevabını okumak için kullanılır.
Şöyle yaparız.
Method Alanı
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Şöyle yaparız.
Örnekler
Örnek
FTP "NLST" komutu ile dizini listeler. Şöyle yaparız.
Örnek
Dosyanın büyüklüğünü öğrenmek için şöyle yaparız.
Dosyayı indirmek için şöyle yaparız.
Dosya yüklemek için şöyle yaparız.
Şu satırı dahil ederiz.
using System.Net;
FTP sunucusu "passive mode" olarak çalışıyorken istemci dosya talebinde bulununca rastgele (ephemeral) bir port numarası gönderir ve bu istemcinin bu portu kullanmasını ister. Yani "control connection" ile "data connection" ayrıdır.Constructor
Şöyle yaparız.
var ftp = (FtpWebRequest)WebRequest.Create (url);
Şöyle yaparız.
ftp.Credentials = new NetworkCredential (ftpUserName, ftpPassWord);
GetRequestStream metoduÖrnek ver. Sunucuya veri göndermek (upload) için kullanılır.
GetResponseStream metodu
Şöyle yaparız. Sunucunun cevabını okumak için kullanılır.
List<string> lines = new List<string>();
using (FtpWebResponse listResponse = (FtpWebResponse)ftp.GetResponse())
using (Stream listStream = listResponse.GetResponseStream())
using (StreamReader listReader = new StreamReader(listStream))
{
while (!listReader.EndOfStream)
{
lines.Add(listReader.ReadLine());
}
}
KeepAlive AlanıŞöyle yaparız.
ftp.KeepAlive = false;
Şöyle yaparız.
ftp.Method = WebRequestMethods.Ftp.ListDirectory;
ftp.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
Şöyle yaparız.ftp.Method = WebRequestMethods.Ftp.DownloadFile;
UseBinary AlanıŞöyle yaparız.
ftp.UseBinary = true;
UsePassive AlanıŞöyle yaparız.
ftp.UsePassive = false;
Örnek
FTP "NLST" komutu ile dizini listeler. Şöyle yaparız.
List<string> files = new List<string>();
//Create FTP request
FtpWebRequest request = FtpWebRequest.Create() as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
while (!reader.EndOfStream)
{
files.Add(reader.ReadLine());
}
//Clean-up
reader.Close();
responseStream.Close(); //redundant
response.Close();
Örnek
Dosyanın büyüklüğünü öğrenmek için şöyle yaparız.
FtpWebRequest request = FtpWebRequest.Create("...") as FtpWebRequest;
//Get the file size
request.Method = WebRequestMethods.Ftp.GetFileSize;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = true; //don't close the connection
int dataLength = (int)request.GetResponse().ContentLength;
ÖrnekDosyayı indirmek için şöyle yaparız.
//Now get the actual data
FtpWebRequest request = FtpWebRequest.Create("...") as FtpWebRequest;
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false; //close the connection when done
//Streams
FtpWebResponse response = request.GetResponse() as FtpWebResponse;
Stream reader = response.GetResponseStream();
ÖrnekDosya yüklemek için şöyle yaparız.
//Create FTP request
FtpWebRequest request = (FtpWebRequest)FtpWebRequest.Create("...");
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential(username, password);
request.UsePassive = true;
request.UseBinary = true;
request.KeepAlive = false;
//Load the file
FileStream stream = File.OpenRead(filePath);
byte[] buffer = new byte[stream.Length];
stream.Read(buffer, 0, buffer.Length);
stream.Close();
//Upload file
Stream reqStream = request.GetRequestStream();
reqStream.Write(buffer, 0, buffer.Length);
reqStream.Close();
Hiç yorum yok:
Yorum Gönder