C#에서 using System.Net 를 사용하면
FTP 접속해서 폴더 생성이 가능합니다. (mkdir)
단계는
1. FTP로 접속할 IP, Port, 생성할 폴더명으로 경로를 파라미터로 WebRequest 를 초기화 해줍니다.
2. FTP로 접속을 위한 ID, Password 로 권한을 설정 하구요
3. FtpWebRequest 기능 중 폴더생성(MakeDirectory)를 대입 합니다.
4. 그 다음 GetResponse() 함수로 FTP로 부터 결과 확인
4번 실행 후 예외로 빠지게 된다면
경로 마지막 폴더명 뒤에 / 표시를 안한경우 또는
이미 해당 폴더명으로 존재하거나 ID, Passsword 가 틀린 경우가 많으니 다시 한번 확인해 보세요.
코드 예시
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Net; namespace WindowsFormsApplication2 { public class test { public void FTPUpload() { //ftp://ip:포트번호/폴더명/ FtpWebRequest requestFTPUploader = (FtpWebRequest)WebRequest.Create("ftp://???.???.???.??:21/폴더1/"); requestFTPUploader.Credentials = new NetworkCredential("ID", "PW"); var request = requestFTPUploader; request.Method = WebRequestMethods.Ftp.MakeDirectory; try { using (var resp = (FtpWebResponse)request.GetResponse()) { resp.Close(); } } catch (WebException e) { } } } }
정상적으로 폴더를 생성했다면 GetResponse() 에서 True 를 반환하기 때문에
True 인 경우 FTP네트워크를 닫아 주고 해당 기능 구현을 마무리 했습니다.
위 코드로 폴더를 생성시 계층적으로 단계별로 만들어야 합니다.
예를 들어 현재 FTP A폴더 내부가 비어 있는 상태에서
A폴더/B폴더/C폴더((ftp://~/A폴더1/B폴더/C폴더/) 디렉토리 구조를 만들기 위해서
A폴더/B폴더/C폴더/ 이렇게 한번에 진행하면 예외로 빠집니다.
단계적으로 기존 A폴더가 있는 상태에서 A폴더/B폴더/ 로 만든 다음
A폴더/B폴더/C폴더/로 만들어야 합니다.
'프로그래밍 > C#' 카테고리의 다른 글
C# FTP 폴더 유무 확인 (FTP remote Check Folder) (0) | 2018.09.21 |
---|---|
C# xml파일 읽기 (0) | 2018.09.14 |
C# FileSystemWatcher 파일 감시 모니터링 (0) | 2018.09.12 |