728x90
반응형
【 WPF & C# (C Sharp) 】 - 다운로드 WebClient 방식 / Download
@ MainWindow.xaml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | <Window x:Class="WebClient_Download.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:local="clr-namespace:WebClient_Download" mc:Ignorable="d" Title="MainWindow" Height="183.898" Width="255.826"> <Grid> <Button x:Name="btnDownload" Content="Download" HorizontalAlignment="Left" Height="31" Margin="89,104,0,0" VerticalAlignment="Top" Width="64" Click="btnDownload_Click"/> <ProgressBar x:Name="ProgressBar1" Height="33" Margin="10,55,10,0" VerticalAlignment="Top"/> <Label x:Name="lbl1" Content="Label" Margin="10,55,10,0" VerticalAlignment="Top" Height="33" HorizontalContentAlignment="Center" VerticalContentAlignment="Center"/> <TextBlock Margin="10,10,43,0" TextWrapping="Wrap" Text="다운로드 WebClient" VerticalAlignment="Top" FontSize="20" Width="195"/> </Grid> </Window> | cs |
@ MainWindow.xaml.cs
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | using System; using System.ComponentModel; using System.Diagnostics; using System.Net; using System.Windows; namespace WebClient_Download { /// <summary> /// MainWindow.xaml에 대한 상호 작용 논리 /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } private void btnDownload_Click(object sender, RoutedEventArgs e) { string clientFile = "https://msdn.microsoft.com/ko-kr/library/ez801hhe(v=vs.110).aspx"; string localFile = "abc.txt"; DownloadFile(localFile, clientFile); // localFile 존재 시 덮어쓰기 됨 } private void DownloadFile(string localFile, string clientFile) { try { WebClient client = new WebClient(); client.DownloadFileCompleted += new AsyncCompletedEventHandler(client_DownloadFileCompleted); // 다운로드 완료 후 client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(client_DownloadProgressChanged); // 다운로드 상태 client.DownloadFileAsync(new Uri(clientFile), localFile); } // 에러발생 시 catch(Exception error){MessageBox.Show(error.Message);} } private void client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e) { lbl1.Content = "Completed"; Process.Start("abc.txt"); // 프로그램 실행 } private void client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e) { lbl1.Content = e.ProgressPercentage + "%"; ProgressBar1.Value = e.ProgressPercentage; } } } | cs |
@ 고생 많이 했다...
MS 자료에 WebClient 라고 해서 자료 찾아봤더니 아무리봐도 다운로드 상태나 완료 이후에 대한 자료가 없어서 많이 뒤적 거렸다.
다른 사람들이 올린 자료도 있고한데... 워낙 복잡하게 해놔서 나같은 초보는 접근 불가능한 세계의 언어였다. ㅠㅠ
결국 찾다찾다 다시 MS 에서 자료를 찾게 됐다.
역시... 모든 기초는 만든업체에서 꺼내와야하는것이 답인듯...
근데... 왜 WPF 는 항상 자료가 없지... ㅠㅠ
나름 핵심 부분만 정리해서 뽑아 놨다.
제발 써먹기 좋기를...
http://insurang.tistory.com
728x90
반응형
'Programing (프로그래밍) > WPF & C# (C Sharp)' 카테고리의 다른 글
[ WPF & C# (C Sharp)] - FTP 업로드 / 다운로드 (10) | 2017.11.07 |
---|---|
[ WPF & C# (C Sharp)] - installer 인스톨러 setup (2) | 2017.11.01 |
[ WPF & C# (C Sharp)] - DateTime 구조체 / 파싱 / parsing / 날짜 / 시간 (0) | 2017.10.31 |
[ WPF & C# (C Sharp)] - 파일 만든 수정한 액세스 날짜 (2) | 2017.10.31 |
WPF & C# - ini 파일 내 방식대로 읽기 ( ini / cfg / config / txt / sector / 섹터 ) (0) | 2017.10.30 |
[ WPF & C# (C Sharp)] - Lib.cs Lib.dll 만들기 (0) | 2017.10.27 |
[ WPF & C# (C Sharp)] - Split / 문자열 자르기 (0) | 2017.10.27 |
[ WPF & C# (C Sharp)] - 두 txt 파일 한줄씩 읽어서 중복 값 제거 (0) | 2017.10.26 |