下載網頁中的圖片到本地

來源:互聯網
上載者:User

標籤:

 簡單的一個下載如下 :

         string url = "http://avatar.csdn.net/A/2/6/2_yefengzhixia.jpg";            string filepath = "D:\\pic.jpg";            WebClient mywebclient = new WebClient();            mywebclient.DownloadFile(url, filepath);            MessageBox.Show("OK");    

 

下面示範一個從網站中下載所有圖片到本地:

1、介面設計:

<Grid>        <DockPanel>            <GroupBox x:Name="groupBox" Header="圖片網址" DockPanel.Dock="Top">                <StackPanel>                                    <StackPanel Orientation="Horizontal" Margin="10" >                    <Button x:Name="button" Content="查看網頁中的圖片" Margin="5" Click="button_Click"  />                        <TextBlock Text="網址:"></TextBlock>                    <TextBox x:Name="textBox" Text="http://www.tooopen.com/img/87.aspx" HorizontalAlignment="Left" MaxWidth="600" TextWrapping="Wrap" MinWidth="300"  VerticalAlignment="Top"  />                </StackPanel>                    <TextBlock Text="下載資訊:"></TextBlock>                    <TextBlock Margin="10" Name="txtcount" Text="{Binding downCount}">                    </TextBlock>                    <TextBlock Name="total"></TextBlock>                    <Button Click="Button_Click_1" Content="開啟下載圖片檔案夾"></Button>                </StackPanel>            </GroupBox>                <ListBox Name="lb"></ListBox>        </DockPanel>    </Grid>

2、代碼

 public partial class MainWindow : Window,INotifyPropertyChanged    {        public MainWindow()        {            InitializeComponent();            this.DataContext = this;        }        private int c;        public int downCount        {            get { return c; }            set { c = value;                if (PropertyChanged != null)                    PropertyChanged(this, new PropertyChangedEventArgs("downCount"));            }        }        public ObservableCollection<string> list = new ObservableCollection<string>();                 public event PropertyChangedEventHandler PropertyChanged;        private async void button_Click(object sender, RoutedEventArgs e)        {                       var path = textBox.Text;            if (string.IsNullOrWhiteSpace(path))            {                textBox.Focus();                MessageBox.Show("請輸入網站地址");                return;            }            HttpClient client = new HttpClient();            var str = await client.GetStringAsync(new Uri(path));            Regex rg = new Regex("<img.+?src=\"(.+?)\"");            var mth = rg.Matches(str);            WebClient wc = null;            int i = 0;            total.Text="共有圖片:"+mth.Count;            Action<string> listboxAddImgName = x => {                lb.Items.Add(x);                          };            foreach (Match item in mth)            {                i++;                var img = item.Groups[1].Value;                string Ex = img.Substring(img.LastIndexOf("."));                string imgName = i + Ex;                Task.Run(() =>                {                    wc = new WebClient();                    wc.DownloadFile(img, "DownLoadImages/" + imgName);                    return imgName;                }).ContinueWith(r=> {                    downCount +=1;                    Dispatcher.Invoke(listboxAddImgName,r.Result);                });            }        }        private void Button_Click_1(object sender, RoutedEventArgs e)        {            System.Diagnostics.Process.Start(Environment.CurrentDirectory+"/DownLoadImages");        }    }

下載網頁中的圖片到本地

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.