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

+ Recent posts