实现自动更新文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实现⾃动更新⽂件
⽼师让我做⼀个ocx控件,功能是:能够上传dll⽂件,并且当程序启动的时候,检测当前dll⽂件版本是不是最新的,如果不是最新的就从数据库下载。
1
第⼀步:在服务器数据库中建⽴⼀个表,保存dll⽂件及相关信息
T_MenuDllInfo(
ID, int 4 //⾃动标识
DllFileName, varchar 20 //⽂件名
DllFileTime, datatime, 8 //⽂件最近更改时间
UpLoadUser, varchar, 20 //登陆客户端的⽤户名
UpLoadTime, datatime, 8 //上传时间 DateTime.Now.ToString()
FileContent, image, 16 //⽂件内容⼆进制形式保存
);
2 控件功能:
(1)、客户端登陆后检测本地dll是否为最新的,如果不是就从服务器下载
(2)、客户端可以选择添加dll⽂件到服务器(只能上传最新的)(最初让数据库中信息为空,直接上传)
为了实现以上的功能,需要很多函数,下⾯给出⼀些函数的源代码:
public string GetFilePath() //通过打开对话框得到⽂件路径
{
string filepath="";
OpenFileDialog openfiledlg = new OpenFileDialog();
if (openfiledlg.ShowDialog() == DialogResult.OK)
{
filepath = openfiledlg.FileName;
}
return filepath;
}
public Byte[] GetBytes(string filepath) //将某路径下的⽂件转化为⼆进制代码
{
FileStream fs = new FileStream(filepath, FileMode.Open, FileAccess.Read);
//打开⽂件流
Byte[] byData = new Byte[fs.Length]; //保存⽂件的字节数组
fs.Read(byData, 0, byData.Length); //读取⽂件流
fs.Close();
return byData;
}。