private async Task GetFileList()
        {
            List <RemoteFileInfo> remoteFileInfos;

            try
            {
                remoteFileInfos = await _restApi.GetRemoteFileListAsync();

                Logger.Trace("Remote files:\r\n{0}", string.Join("\r\n", remoteFileInfos.Select(rfi => rfi.Name)));
            }
            catch (Exception e)
            {
                ShowMessageBox(L("FilesNotReady"), MessageBoxButton.OK, MessageBoxImage.Exclamation);
                Logger.Error(e);
                RequestClose(false);
                return;
            }
            FileUpdateInfos.AddRange(remoteFileInfos.Select(fi => new FileUpdateInfo
            {
                FileName      = fi.Name,
                Url           = fi.Url,
                RemoteMD5     = fi.MD5,
                LocalFilePath = Path.Combine(App.AppPath, Const.LOCAL_WEB_FILE_DIR, fi.Name.TrimStart('/')),
                FileStatus    = L("Updating"),
            }));
        }
        private async Task GetFileList()
        {
            List <RemoteFileInfo> remoteFileInfos;

            try
            {
                remoteFileInfos = await _restApi.GetRemoteFileListAsync(_remoteUrl);

                //Logger.Trace("Remote files:\r\n{0}", string.Join("\r\n", remoteFileInfos.Select(rfi => rfi.Name)));
            }
            catch (Exception e)
            {
                Logger.Error(e);
                var _errorView = new ErrorView(L("FilesNotReady"), e.Message, "https://www.bphots.com/articles/errors/");
                //ShowMessageBox(L("FilesNotReady"), MessageBoxButton.OK, MessageBoxImage.Exclamation);
                RequestClose(false);
                return;
            }

            remoteFileInfos.ForEach(r => _totalBytes += long.Parse(r.Size));
            FileUpdateInfos.AddRange(remoteFileInfos.Select(fi => new FileUpdateInfo
            {
                FileName      = fi.Name,
                Url           = fi.Url,
                RemoteMD5     = fi.MD5,
                LocalFilePath = Path.Combine(App.AppPath, _localDir, fi.Name.TrimStart('/')),
                Path          = fi.Url.Remove(0, 24), //移去https://static.bphots.com/
                FileStatus    = L("Updating")
            }));
        }