프로젝트마다 FTP 관련 기능들을 사용할 때가 있는데요.
기본 메소드 기능들과 이 기능들을 활용하여 좀 더 다양한 기능들 구현할 때가 많았습니다.
( 디렉토리 존재여부, 경로대로 디렉토리 생성, 디렉토리 모두 삭제, 디렉토리 다운로드, 여러 파일 업로드 등.. )
그래서 이러한 기능들을 쉽게 사용할 수 있도록 클래스를 만들어 보았습니다.
중요 클래스는 Ftp 클래스입니다.
그 외에 관련된 필요 클래스들도 위에 보이는 것처럼 여러 개가 있습니다.
아래 그림은 Ftp 클래스의 메소드와 프로퍼티 이벤트입니다.
메소드는 WebRequestMethods.Ftp 의 기본 메소드들과 이를 응용한 확장 메소드들이 있습니다.
메소드명을 보시면 어떤 역활을 하는지 알 수 있고, summary 를 달아놔서 사용 시 어렵지는 않으실 겁니다.
메소드들 중 업로드와 다운로드 메소드명 뒤에 WC 라고 붙는 메소들이 있는데요.
WebClient 를 이용해서 파일 업로드, 다운로드를 진행하는 메소드이고,
일반적인 메소드는 FtpWebRequest 를 사용하여 진행합니다.
프로젝트시 마다 항상 필요성을 느껴서 만들게 된 메소드가 두 가지 있습니다.
DownloadDirectoryAsync( WC ) 메소드는 FTP 에 있는 폴더를 통째로 다운로드 받고,
UploadFileListAsync( WC ) 메소드는 FtpUploadDirectory 리스트를 매개변수로 받아
파일들을 모두 업로드 합니다.
업로드 다운로드시 필요 이벤트들을 만들어 놓았습니다.
DownloadDirectoryChanged 는 다운로드는 되는 파일 변경시 발생하고,
UploadFileListChanged 는 업로드 되는 파일 변경시 발생합니다.
소스를 첨부하니 디버깅에 사용하시고, 출처는 밝혀주시면 감사하겠습니다.
사용하시면서 발생하는 문제점들에 대해서 의견 주시면 반영하도록 하겠습니다.
'Languages > C#' 카테고리의 다른 글
ClickOnce Custom BootStrapper (0) | 2015.12.01 |
---|---|
[ C# ] Change Audio Device (0) | 2013.08.06 |
[ C# ] Object To Byte, Byte To Byte (0) | 2013.02.26 |
[ C# ] Struct To Byte, Byte To Struct (0) | 2012.08.17 |
[ C# ] Win32 API MouseEvent (8) | 2010.12.07 |