Image دات نت

کار با FTP در سی شارپ

آموزش کار با 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");   

 

تمام.