Languages/C#2010. 7. 21. 12:16

C# 에서는 FTP 에 관련된 기능들을 손쉽게 구현할 수 있도록 클래스들을 제공하고 있습니다.

그 중에서 FtpWebRequest가 많이 사용되어지고 있는데요.

FtpWebRequest Method 멤버 값 속성인 WebRequestMethods.Ftp 의 멤버 변수들을 보시면 각 기능들에 대해

알 수가 있습니다.

 

MSDN : http://msdn.microsoft.com/en-us/library/system.net.webrequestmethods.ftp_members.aspx

 

기본적인 사용 방법은 다음과 같습니다.

  FtpWebRequest reqFtp = (FtpWebRequest)WebRequest.Create("ftp 서버 주소");

 

  // 사용할 기능 설정

  reqFtp.Method = WebRequestMethods.Ftp.GetFileSize;

  reqFtp.Credentials = new NetworkCredential("UserName", "Password");

 

  // 요청에 대한 응답을 받습니다.

  FtpWebResponse resFtp = (FtpWebResponse)reqFtp.GetResponse();

  long fileSize = resFtp.ContentLength;

  resFtp.Close();

 

FtpWebResponse 에 대한 자세한 내용은 다음 주소를 참고하세요.

MSDN : http://msdn.microsoft.com/ko-kr/library/system.net.ftpwebresponse_members(VS.90).aspx

 

WebRequestMethods.Ftp 의 멤버 변수인 DownloadFile 을 사용하여 파일을 다운로드 할 수 있지만

현재 진행률을 보여주고 싶을 때 간단하게 이벤트 핸들러를 통해 그 값을 확인할 수가 있는데요.

 

WebClient 클래스를 사용하면 됩니다.

MSDN : http://msdn.microsoft.com/ko-kr/library/system.net.webclient_members(VS.90).aspx

 

간단한 사용법은 다음과 같습니다.

 using (WebClient request = new WebClient())

{

    request.Credentials = new NetworkCredential("UserName", "Password");

 

    // 파일 다운로드 진행률 변경 이벤트

    request.DownloadProgressChanged += request_DownloadProgressChanged;

 

    // 파일 다운로드 완료 이벤트

    request.DownloadFileCompleted += request_DownloadFileCompleted;

   

    // 다운로드 시작

    request.DownloadFileAsync("다운 받을 파일의 전체 경로");

}

 

간단하게 FTP 서버에서 파일을 다운 받는 예제를 만들어 보았습니다.

 

윈도우 7에서는 보안상의 문제로 C 드라이브에 엑세스 할 수 없어 저장이 안됩니다.

FTP_Download.zip

'Languages > C#' 카테고리의 다른 글

[ C# ] Struct To Byte, Byte To Struct  (0) 2012.08.17
[ C# ] Win32 API MouseEvent  (8) 2010.12.07
[ C# ] Default Sound Device 변경하기  (0) 2010.07.19
[ C# ] XML 쓰고 읽기  (0) 2010.05.21
[ C# ] Network 연결 확인  (0) 2010.05.21
Posted by 열ㅇl