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 드라이브에 엑세스 할 수 없어 저장이 안됩니다.
'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 |