# fsys.update.dlMgr 库模块帮助文档

## fsys.update 成员列表 <a id="fsys.update" href="#fsys.update">&#x23;</a>

### fsys.update.dlMgr <a id="fsys.update.dlMgr" href="#fsys.update.dlMgr">&#x23;</a>
更新/修复应用程序文件下载管理器

### fsys.update.dlMgr() <a id="fsys.update.dlMgr" href="#fsys.update.dlMgr">&#x23;</a>
[返回对象:fsysUpdateDlmgrObject](#fsysUpdateDlmgrObject)

### fsys.update.dlMgr(updateUrl,saveDir,appVersion,appDir) <a id="fsys.update.dlMgr" href="#fsys.update.dlMgr">&#x23;</a>
updateUrl:版本文件version.txt的网址,也可以指定包含多个网址的数组,  
更新文件存储目录  
appVersion:应用程序版本号,不指定自动获取EXE产品版本  
appDir:应用程序目录,不指定则为当前EXE目录

## fsysUpdateDlmgrObject 成员列表 <a id="fsysUpdateDlmgrObject" href="#fsysUpdateDlmgrObject">&#x23;</a>

### fsysUpdateDlmgrObject.httpHeaders <a id="fsysUpdateDlmgrObject.httpHeaders" href="#fsysUpdateDlmgrObject.httpHeaders">&#x23;</a>
可选使用此属性指定HTTP请求头,  
http头可以是web.joinHeaders支持的字符串、键值对、数组等格式

### fsysUpdateDlmgrObject.prepareUpdate(启动下载延时) <a id="fsysUpdateDlmgrObject.prepareUpdate" href="#fsysUpdateDlmgrObject.prepareUpdate">&#x23;</a>
启动「检测更新/下载文件」线程，  
延时参数以毫秒为单位,为可选参数

### fsysUpdateDlmgrObject.startUpdate <a id="fsysUpdateDlmgrObject.startUpdate" href="#fsysUpdateDlmgrObject.startUpdate">&#x23;</a>
如果之前已下载新版本完成，启动自动更新，成功返回true，  
否则调用prepareUpdate函数启动「检测更新/下载文件」线程

### fsysUpdateDlmgrObject.startUpdate(启动下载延时) <a id="fsysUpdateDlmgrObject.startUpdate" href="#fsysUpdateDlmgrObject.startUpdate">&#x23;</a>
可选使用参数@1指定启动时延后下载更新文件以提升启动速度,  
延时参数以毫秒为单位

## fsysUpdateDlmgrObject 事件列表 <a id="fsysUpdateDlmgrObjectEvent" href="#fsysUpdateDlmgrObjectEvent">&#x23;</a>

### fsysUpdateDlmgrObject.onChecksum <a id="fsysUpdateDlmgrObject.onChecksum" href="#fsysUpdateDlmgrObject.onChecksum">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onChecksum = function(count,total){
	io.stdout.write("已校检文件", count,'\r')
}
```

### fsysUpdateDlmgrObject.onChecksumBegin <a id="fsysUpdateDlmgrObject.onChecksumBegin" href="#fsysUpdateDlmgrObject.onChecksumBegin">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onChecksumBegin = function(total){
	io.print("开始检验,文件总数：", total)
}
```

### fsysUpdateDlmgrObject.onConfirmDownload <a id="fsysUpdateDlmgrObject.onConfirmDownload" href="#fsysUpdateDlmgrObject.onConfirmDownload">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onConfirmDownload = function(isUpdated,appVersion,latestVersion,description){ 
	return !isUpdated; /*检测版本完成触发此函数,  
@isUpdated参数表示是否更新,  
@appVersion参数为当前版本,  
@latestVersion参数为更新的版本号,  
@description为更新说明  
返回真继续下载更新文件  
不指定此事件时默认返回@isUpdated参数*/
}
```

### fsysUpdateDlmgrObject.onDownloadBegin <a id="fsysUpdateDlmgrObject.onDownloadBegin" href="#fsysUpdateDlmgrObject.onDownloadBegin">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onDownloadBegin = function(totalSize,fileTotal){
	io.print("开始下载更新文件", ..fsys.formatSize(totalSize),fileTotal)
}
```

### fsysUpdateDlmgrObject.onDownloadFile <a id="fsysUpdateDlmgrObject.onDownloadFile" href="#fsysUpdateDlmgrObject.onDownloadFile">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onDownloadFile = function(path,contentLength,fileSize){
	io.print("正在下文件", path)	
}
```

### fsysUpdateDlmgrObject.onDownloadReceive <a id="fsysUpdateDlmgrObject.onDownloadReceive" href="#fsysUpdateDlmgrObject.onDownloadReceive">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onDownloadReceive = function(sizePs,downTotalSize,fileCount){
	io.print("已下载文件数:" + fileCount, ..fsys.formatSize(downTotalSize) )
}
```

### fsysUpdateDlmgrObject.onEnd <a id="fsysUpdateDlmgrObject.onEnd" href="#fsysUpdateDlmgrObject.onEnd">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onEnd = function(updater,saveDir,appDir,mainPath,updateFilesCount){
	/*更新文件已准备就绪,  
以下参数中的路径已经转换为绝对路径:  

updater 执行文件更新的EXE路径  
saveDir 下载升级包的存储目录  
appDir 需要更新的应用程序目录  
mainPath 此应用程序的启动EXE路径  
updateFilesCount 更新的文件数*/
}
```

### fsysUpdateDlmgrObject.onError <a id="fsysUpdateDlmgrObject.onError" href="#fsysUpdateDlmgrObject.onError">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onError = function(err,filename){
	io.print("更新遇到错误:",err,filename/*导致错误的文件路径或URL  
该值可能为空*/ )
}
```

### fsysUpdateDlmgrObject.onUnCompress <a id="fsysUpdateDlmgrObject.onUnCompress" href="#fsysUpdateDlmgrObject.onUnCompress">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onUnCompress = function(fileCount,path){
	io.print("已解压", fileCount, path)
}
```

### fsysUpdateDlmgrObject.onUnCompressBegin <a id="fsysUpdateDlmgrObject.onUnCompressBegin" href="#fsysUpdateDlmgrObject.onUnCompressBegin">&#x23;</a>

```aardio
fsysUpdateDlmgrObject.onUnCompressBegin = function(fileTotal){
	io.print("开始解压,文件总数：", fileTotal)
}
```

