需求背景:
传统C/S架构的软件,数据库在服务器,客户端在用户主机上,导致日志文件也在用户电脑中,要求把用户电脑中的日志文件上传到服务器中。同时需要定时删除历史日志。
步骤
1.在服务器创建共享文件夹,配置everyone的读写条件
客户端与服务器在同一网络环境才能进行日志上传
可以通过在运行框输入\+IP地址看能否打开服务器共享文件夹的方式检查是否配置成功。
正常情况点击【确定】后可以进入共享文件夹,如果有什么报错,请自行百度吧,有可能与防火墙有关,博主做的时候已经关了防火墙。
2.文件上传,直接上代码
日志文件上传主方法
public void updateLog(object sender, EventArgs e)
{
WriteTxt.WriteLog("WARN", "日志上传开始:updatelog begin!", KYHRP.Model.HrUserEntity.USER_INFO.UserCode, null);
string serverIp = "1.1.1.1";//获取服务器IP
string serverUserName = "administrator";//服务器用户名
string serverUserPassword = "123456";//服务器密码
string now = DateTime.Now.Year.ToString() + '_' + DateTime.Now.Month.ToString() + '_' + DateTime.Now.Day.ToString() + '_' + DateTime.Now.Hour.ToString() + '_'
+ DateTime.Now.Minute.ToString();//当前时间 格式为年_月_日_时_分
string userCode = HrUserEntity.USER_INFO.UserCode;//程序的当前登录用户
string hostName = Dns.GetHostName();//用户主机名
if (connectState(serverIp, serverUserName, serverUserPassword))
{
string newpath = "" + serverIp + "\\share\\" + userCode;
newpath = System.IO.Path.GetFullPath(@newpath);
//string newpath = System.IO.Path.GetFullPath(@"192.168.82.99//e$//共享//bianma.txt");
//不同用户本机日志文件位置不同,此处使用相对地址获取文件夹路径
string origpath = System.IO.Path.GetFullPath(@".\log");
//origpath:源文件 newpath:目标文件 true:如有文件存在覆盖掉 fales:不覆盖
//File.Copy(origpath, newpath, true);
bool succecc = CopyDirectory(origpath, newpath, true);
//上传成功后,更新日志上传记录表upda