实现自动更新文件
老师让我做一个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; }