using Thousandto.Update.Xml;
using System;
using System.Collections.Generic;
using System.Text;
using System.Threading;
using System.IO;
namespace Thousandto.Update.Data
{
public class BackDownloadData
{
//下载的url
private string _downloadUrl;
public string DownloadUrl
{
get { return _downloadUrl; }
set { _downloadUrl = value; }
}
//下载文件存放路径
private string _filePath;
public string FilePath
{
get { return _filePath; }
set { _filePath = value; }
}
//资源版本,分段版本号
private string _resVersion;
public string ResVersion
{
get { return _resVersion; }
set { _resVersion = value; }
}
//已下载文件大小
private int _existSize;
public int ExistSize
{
get { return _existSize; }
set { _existSize = value; }
}
//当前下载大小
private int _downloadSize;
public int DownloadSize
{
get { return _downloadSize; }
set { _downloadSize = value; }
}
//总文件大小
private int _totalSize;
public int TotalSize
{
get { return _totalSize; }
set { _totalSize = value; }
}
FileInfo _fileInfo;
public void Init(string storePath, VersionModel model)
{
DownloadUrl = model.ResourceUrl.Replace("\\", "/");
FilePath = System.IO.Path.Combine(storePath, DownloadUrl.Substring(DownloadUrl.LastIndexOf("/") + 1));
ResVersion = model.ToVersion;
FileInfo fileInfo = new FileInfo(FilePath);
if (fileInfo.Exists)
{
_fileInfo = fileInfo;
ExistSize = (int)fileInfo.Length;
}
DownloadSize = ExistSize;
TotalSize = int.Parse(model.FileSize);
}
///
/// 1秒钟调用一次即可
///
///
public bool Finish()
{
if (_fileInfo == null || !_fileInfo.Exists)
{
_fileInfo = new FileInfo(FilePath);
}
if (_fileInfo.Exists)
{
DownloadSize = (int)_fileInfo.Length;
}
return DownloadSize == TotalSize;
}
public void GetDownloadSize(out int downloaded, out int total)
{
total = TotalSize;
downloaded = ExistSize;
FileInfo fileInfo = new FileInfo(_filePath);
if (fileInfo != null && fileInfo.Exists)
{
downloaded = (int)fileInfo.Length;
}
}
}
}