示例#1
0
        private void DownLoad(AutoUpdaterInfo info, bool redownLoad = false)
        {
            if (string.IsNullOrEmpty(info.DownloadUrl))
            {
                OnCompletedCallBack("下载文件无效", false);
                return;
            }
            var filename       = Path.GetFileName(info.DownloadUrl);
            var downloadFolder = CommonUnitity.GetDownLoadFolder();
            var fullname       = Path.Combine(downloadFolder, filename);
            var subFolderList  = Directory.EnumerateDirectories(downloadFolder);

            foreach (var tempFolder in subFolderList)
            {
                Directory.Delete(tempFolder, true);
            }
            if (File.Exists(fullname))
            {
                //如果已经存在该文件,且文件版本号和新文件版本号一致,那么直接跳过
                if (redownLoad)
                {
                    //要求重新下载
                    File.Delete(fullname);
                    CommonUnitity.ClearFolder(downloadFolder);
                }
                else
                {
                    //如果文件已经存在
                    if (DownloadProgressChanged != null)
                    {
                        DownloadProgressChanged(1, 1, 100);
                    }
                    Do(new DownloadUserToken()
                    {
                        Client = _webClient, FileName = fullname, ExcuteFileName = info.ExcuteFileName
                    });
                    return;
                }
            }
            _webClient.DownloadFileCompleted   += OnDownloadFileCompleted;
            _webClient.DownloadProgressChanged += OnDownloadProgressChanged;
            DownloadUserToken userToken = new DownloadUserToken()
            {
                Client = _webClient, FileName = fullname, ExcuteFileName = info.ExcuteFileName
            };

            _webClient.DownloadFileAsync(new Uri(info.DownloadUrl), fullname, userToken);
        }
示例#2
0
        private string GetDownloadBinDirectory(List <string> autoupdaterFiles)
        {
            var downLoadFolder = CommonUnitity.GetDownLoadFolder();

            //根据文件长度从小大大排序
            autoupdaterFiles = autoupdaterFiles.OrderBy(x => x.Length).ToList();
            foreach (var file in autoupdaterFiles)
            {
                var filename = Path.GetFileNameWithoutExtension(file);
                if (string.Equals(filename, "readme", StringComparison.OrdinalIgnoreCase) ||
                    string.Equals(filename, "说明", StringComparison.OrdinalIgnoreCase)
                    )
                {
                    return(Path.GetDirectoryName(file));
                }
            }
            return(downLoadFolder);
        }