• c# 通过文件夹共享复制文件到服务器


    
    
    public static string[] GetFileNames(string directoryPath, string searchName)
            {
                return Directory.GetFiles(directoryPath, searchName, SearchOption.AllDirectories);
            }
    
    
    


    public
    class NetFileConntion { public static bool ConnectState(string path) { return ConnectState(path, "", ""); } public static bool ConnectState(string path, string userName, string passWord) { bool flag = false; Process proc = new Process(); try { proc.StartInfo.FileName = " cmd.exe "; proc.StartInfo.UseShellExecute = false; proc.StartInfo.RedirectStandardInput = true; proc.StartInfo.RedirectStandardOutput = true; proc.StartInfo.RedirectStandardError = true; proc.StartInfo.CreateNoWindow = true; proc.Start(); string dosLine = @"net use * /del /y net use " + path + " /User:" + userName + " " + passWord + " /PERSISTENT:YES"; proc.StandardInput.WriteLine(dosLine); proc.StandardInput.WriteLine(" exit "); while (!proc.HasExited) { proc.WaitForExit(1000); } string errormsg = proc.StandardError.ReadToEnd(); proc.StandardError.Close(); if (string.IsNullOrEmpty(errormsg)) { flag = true; } else { throw new Exception(errormsg); } } finally { proc.Close(); proc.Dispose(); } return flag; } }
     /// <summary>
            /// 数据处理
            /// </summary>
            public override void Execute(JobExcutePara para)
            {
                if (ConfigHelper.Settings("RemoteCopyFileSwitch") != "1")
                {
                    return;
                }
    
                //读取所有文件
                var files = DirFileHelper.GetFileNames(ExcelRootPath, "*.*").Where(t => t.Contains("\U_")).ToList();
                //远程地址
                var remotepaths = ConfigHelper.Settings("RemoteRootPaths")
                    .Split(new[] {''}, StringSplitOptions.RemoveEmptyEntries);
                var remoteusers = ConfigHelper.Settings("RemoteUserPass")
                    .Split(new[] {''}, StringSplitOptions.RemoveEmptyEntries);
                var sr=new StringBuilder();
                foreach (var remotepath in remotepaths)
                {
                    sr.Append(remotepath + ",");
                    try
                    {
                        bool status = NetFileConntion.ConnectState(remotepath, remoteusers[0], remoteusers[1]);
                        sr.Append(status + "," + files.Count + "," + remoteusers[0] + "," + remoteusers[1]);
                        if (status)
                        {
                            var startTime = new DateTime(DateTime.Now.Year,
                                DateTime.Now.Month,
                                DateTime.Now.Day,
                                0, 0, 0);
                            //读取目标目录文件
                            var theFiles = DirFileHelper.GetFileNames(remotepath, "*.*");
                            sr.Append(theFiles.Length + ",");
    
                            foreach (var file1 in files)
                            {
                                var fileinfo_1=new FileInfo(file1);
                                if (fileinfo_1.LastWriteTime < startTime)
                                {
                                    continue;
                                }
                                var filepath = file1.Replace(ExcelRootPath, string.Empty);
                                var flag = false;
                                foreach (var file2 in theFiles)
                                {
                                    //检查文件是否存在
                                    if (file2.Contains(filepath))
                                    {
                                        flag = true;
                                        break;
                                    }
                                }
                                if (!flag)
                                {
                                    //没有则进行写入复制
                                    var targetPath = remotepath + filepath;
                                    if (!Directory.Exists(Path.GetDirectoryName(targetPath)))
                                    {
                                        Directory.CreateDirectory(Path.GetDirectoryName(targetPath));
                                    }
                                    File.Copy(file1, targetPath);
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        LogHelper._Error("JobExcute__CopyFile ERROR", ex);
                    }
                }
                //LogHelper._Info(sr.ToString());
            }
  • 相关阅读:
    javascript 犀牛书
    Hmtl/css
    SQL Server 查询中使用Union或Union All后Order by排序无效(嵌套查询乱序)
    CSS 动画
    CSS 文字排版
    CSS 太极图
    Amazon Products 服务费估算
    CSS3 结构伪类选择器
    JS 执行机制
    vue 生命周期函数的学习
  • 原文地址:https://www.cnblogs.com/password1/p/7079228.html
Copyright © 2020-2023  润新知