آموزش کار با FTP در زبان برنامه نویسی سی شارپ
سلام دوستان در این آموزش قصد دارم نحوه اتصال به FTP و کار با آن را به شما دوستان آموزش دهم
اول از همه باید یک ارتباط ایجاد کنیم
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://Hostname.com/");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
// This example assumes the FTP site uses anonymous logon.
request.Credentials = new NetworkCredential("maruthi", "******");
request.KeepAlive = false;
request.UseBinary = true;
request.UsePassive = true;
توجه کنید باید فضای نام
using System.Net;
را using کنیم
حال ما می توانیم رفتار های متعددی را برای ارتباط ، تعریف کنیم : (همون کشینگ خودمون)
request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable);
با کد زیر می توانید محتویات را از فایل FTP خودتان بخوانید.
try
{
// FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://Hostname.com/");
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://Hostname.com/");
request.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
request.Credentials = new NetworkCredential("maruthi", "******");
request.KeepAlive = false;
request.UseBinary = true;
request.UsePassive = true;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
Console.WriteLine("Directory List Complete, status {0}", response.StatusDescription);
reader.Close();
response.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
این کد تمامی محتویات و مستندات درایو FTP شما را نشان می دهد.
نحوه خواندن یک فایل خاص
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://Hostname.com/6.txt");
request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable);
request.Method = WebRequestMethods.Ftp.DownloadFile;
request.Credentials = new NetworkCredential("maruthi", "******");
request.KeepAlive = false;
request.UseBinary = true;
request.UsePassive = true;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
Console.WriteLine("Download Complete", response.StatusDescription);
reader.Close();
response.Close();
}
catch (WebException e)
{
Console.WriteLine(e.Message.ToString());
String status = ((FtpWebResponse)e.Response).StatusDescription;
Console.WriteLine(status);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
کد زیر به شما در فرستادن یک فایل به یک FTP location (مکان FTP) کمک می کند.
public static void PostDatatoFTP(int i)
{
try
{
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://Hostname.com"+@"\"+"TestFile0.txt");
request.CachePolicy = new HttpRequestCachePolicy(HttpRequestCacheLevel.CacheIfAvailable);
request.Method = WebRequestMethods.Ftp.UploadFile;
request.Credentials = new NetworkCredential("maruthi", "******");
// Copy the contents of the file to the request stream.
StreamReader sourceStream = new StreamReader(@"E:\yourlocation\SampleFile.txt");
byte[] fileContents = Encoding.UTF8.GetBytes(sourceStream.ReadToEnd());
sourceStream.Close();
request.ContentLength = fileContents.Length;
Stream requestStream = request.GetRequestStream();
requestStream.Write(fileContents, 0, fileContents.Length);
requestStream.Close();
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Console.WriteLine("Upload File Complete, status {0}", response.StatusDescription);
response.Close();
}
catch (WebException e)
{
Console.WriteLine(e.Message.ToString());
String status = ((FtpWebResponse)e.Response).StatusDescription;
Console.WriteLine(status);
}
catch(Exception ex)
{
Console.WriteLine(ex.Message.ToString());
}
}
تکه کد پایین برای خواندن تمام محتویات فایل استفاده می شود .
FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://Hostname.com/TestFile.txt");
تمام.