본문 바로가기

취미생활/C#

[C#] FTP를 이용한 파일 다운로드 구현하기!!

반응형

안녕하세요

 

코딩연습생입니다

 

요즘 코로나19로 인한 회사 사정이 어려워져서 극심한 매출감소 효과가 심해지고 있습니다ㅠ

 

이럴때 회사를 위해 열심히 일하다 보니 정작 제 블로그 관리에 좀 소홀했습니다

 

몇일만에 올리는 게시글인지 모르겠습니다ㅠ

 

그래도 꾸준히 하자라는 다짐과 함께 다시금 시작해 볼려고 합니다

 

이번 포스팅은 C# Winform을 이용하여 FTP에 접속하여 원하는 파일을 다운로드하는 프로그램을 구현해 볼려고 합니다

 

매우 간단합니다

 

C#프로그램을 짜는것 보다 FTP서버를 구성하는게 더 오래 걸리더라구요ㅎ

 

이번 포스팅에서는 C# 프로그램을 작성하는 내용만 포스팅합니다ㅎㅎ

 

FTP서버 구성은 기본적으로 되어 있다는 가정하에 포스팅을 작성하니 참고하시기 바랍니다

 

윈폼 젤 상단에 다음과 같이 using문을 선언합니다

 

using System.IO;
using System.Net;

System.IO 선언 이유는 DirectoryInfo 클래스 사용을 하기 위함이고

 

System.Net을 선언하는 이유는 WebClient 클래스를 사용하기 위해서 입니다

 

두번째로 디자인폼에서 버튼을 하나 생성해서 이쁘게 꾸며줍니다ㅎ

 

 

저는 이렇게 양식파일다운로드라는 버튼을 하나 만들어 줬습니다

 

그다음 버튼의 클릭 이벤트를 생성합니다

 

 

이렇게 이벤트를 생성한뒤에 이벤트 위치에 다음과 같이 코딩을 해줍니다

 

private void hoverGradientButton23_Click(object sender, EventArgs e)
        {
            try
            {
                string folderPath = @"C:\Program Files\Admin\Excel";
                string folderPath_sem = @"C:\Program Files\Excel\출하지시서";

                DirectoryInfo di = new DirectoryInfo(folderPath);
                DirectoryInfo di_sem = new DirectoryInfo(folderPath_sem);

                if (di.Exists == false)
                {
                    di.Create();

                    if (di_sem.Exists == false)
                    {
                        di_sem.Create();
                    }
                }

                WebClient webClient = new WebClient();
                webClient.DownloadFile(new Uri("FTP링크주소(파일확장자까지지정"), @"C:\Program Files\Excel\Shipping_sample_OEM.xlsx");
                webClient.DownloadFile(new Uri("FTP링크주소(파일확장자까지지정"), @"C:\Program Files\Excel\Shipping_sample_OES.xlsx");
                webClient.DownloadFile(new Uri("ftp://ftp주소/파일명.xlsm"), @"C:\Program Files\Excel\출하지시서\shipping_instructions.xlsm");

                MessageBox.Show("양식 파일이 정상적으로 설치 되었습니다.");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
        }

 

<Source Code 설명>

1. folderPath의 폴더가 존재하는지 확인 후 폴더를 생성합니다

2. forderPath_sem의 폴더가 존재하는지 확인 후 폴더를 생성합니다

3. WebClient를 선언합니다

4. WebClient 클래스의 함수중 DownloadFile를 사용하여 해당 URL 위치의 파일을 다운로드 합니다

   (동일이름의 파일이 존재할 경우 덮어씌우기가 됩니다)

5. 정상 다운로드가 진행되었다면 메세지박스를 띄워줍니다

 

 

반응형