wei
2021-02-01 8da70e1a39328e1769b02bb1e05303916bb30eb5
HDL_ON/Common/FileUtlis.cs
old mode 100755 new mode 100644
@@ -1,6 +1,7 @@
using System;
using System.Collections.Generic;
using System.IO;
using System.Net;
using HDL_ON.Entity;
namespace HDL_ON.Common
@@ -269,5 +270,81 @@
                }
            }
        }
        /// <summary>
        /// 下载网络图片
        /// </summary>
        /// <param name="fileName"></param>
        /// <param name="url"></param>
        public void DownLoadImage(string fileName, string url,Action action)
        {
            if (!File.Exists(fileName))
            {
                System.Threading.Tasks.Task.Run(() => {
                    FileStream fs = null;
                    try
                    {
                        MyWebClient webClient = new MyWebClient();
                        byte[] recevieBytes = webClient.DownloadData(new Uri(url));
                        fs = new FileStream(Path.Combine(RootPath, fileName), FileMode.Create, FileAccess.Write);
                        //fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                        fs.Write(recevieBytes, 0, recevieBytes.Length);
                        fs.Flush();
                    }
                    catch (Exception ex) {
                        MainPage.Log($"down image : {ex.Message}");
                    }
                    finally
                    {
                        if (fs != null)
                        {
                            fs.Close();
                            action?.Invoke();
                        }
                    }
                });
            }
        }
    }
    public class MyWebClient : WebClient
    {
        int _timeout = 10000;
        /// <summary>
        /// 超时时间(毫秒)
        /// </summary>
        public int Timeout
        {
            get
            {
                return _timeout;
            }
            set
            {
                _timeout = value;
            }
        }
        public MyWebClient()
        {
        }
        public MyWebClient(int timeout)
        {
            this._timeout = timeout;
        }
        protected override WebRequest GetWebRequest(Uri address)
        {
            var result = base.GetWebRequest(address);
            result.Timeout = this._timeout;
            return result;
        }
    }
}