본문 바로가기
C# 기술

url의 파일을 다운로드하여 실행하기. WebClient

by bryan.oh 2019. 2. 9.
반응형

프로그램 업그레이드 방법

설치or실행 파일을 다운로드 후 실행

 

 

WebClient 를 사용하여 웹 상의 파일을 다운로드 하여 실행하는 소스입니다.

 

업그레이드 버튼을 클릭하면 WebClient 를 생성하여 URL 의 실행 파일을 다운로드 합니다.

다운로드 상황은 DownloadProgressChanged 이벤트를 이용하여 Progressbar 에 표시하게 됩니다.

다운로드가 완료되면 DownloadFileCompleted 이벤트를 실행하여 다음 action 을 지정합니다.

DownloadFileAsync 를 실행하여 비동기로 파일을 다운로드를 시작합니다.

 

다운로드가 완료되면 다운로드 된 파일을 실행하고 현재 프로그램을 종료합니다.

 

현재 프로그램의 업그레이드 설치 파일이라면 현재 프로그램을 종료해야 설치가 되기 때문입니다.

 

아래는 소스 입니다.

// 서버의 파일을 다운로드 받기
private void radButton_upgrade_Click(object sender, EventArgs e)
{
    try
    {
        using (WebClient fileDownloader = new WebClient())
        {
            string tmpSetupPath = Path.Combine(Environment.GetEnvironmentVariable("TEMP"), "upgradeSetupFile.exe");
            fileDownloader.DownloadProgressChanged += fileDownloader_DownloadProgressChanged; // 다운로드 진행 상황 표시하기 위해
            fileDownloader.DownloadFileCompleted += fileDownloader_DownloadFileCompleted;        // 다운로드가 완료되면 실행
            fileDownloader.DownloadFileAsync(new Uri(GV_UPGRADE_URL), tmpSetupPath, tmpSetupPath);
            // GV_UPGRADE_URL 는 서버에 올라가있는 설치파일의 주소. 예: http://hello-bryan.com/setupfile.exe
        }
    }
    catch (Exception ex)
    {
        log.Error("오류 : "+ex.Message);
        return;
    }
}

void fileDownloader_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
    string tmpSetupPath = e.UserState.ToString();
    log.Debug("다운로드 완료 : " + tmpSetupPath);
    Process.Start(tmpSetupPath);    // 다운받은 파일을 실행하고 
    this.DialogResult = System.Windows.Forms.DialogResult.OK;   // 현재 프로그램을 
    this.Close();
}

void fileDownloader_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
    radProgressBar_update.Value1 = e.ProgressPercentage;
}
 

 

 

 

 

728x90
반응형

댓글