C# 备份、还原、拷贝远程文件夹
2021-05-13 23:26
标签:compress combine mes parent pat 工作 拷贝 rac except 最近一直都很忙,非常抱歉好久没有写过博客了。最近遇到拷贝远程文件的一些工作,比如我们发布的web站点的时候,开发提供一个zip压缩包,我们需要上传到远程的服务器A,然后在部署(文件拷贝)到远程环境B和C,ABC都在一个局域网里面。 首先我们需要一个工具类来转换文件路径,本地地址与远程地址的转换 比如192.168.0.1上的D:\test 转换 为\\192.168.0.1\D$\test,文件路径的拼接, 备份远程目录的文件夹 (首先备份远程A目录到本地临时文件zip->拷贝到远程B->删除本地临时文件zip) 还原远程文件(部署发布包)(远程文件解压到本地临时目录->拷贝到目标服务器->删除本地临时目录) 文件夹得拷贝就比较简单,递归调用文件复制就okay了,比如 \\192.168.0.1\D$\test 拷贝到 \\192.168.0.2\D$\test下 (建议先删除存在文件在拷贝)。 相关code如下: C# 备份、还原、拷贝远程文件夹 标签:compress combine mes parent pat 工作 拷贝 rac except 原文地址:http://www.cnblogs.com/majiang/p/7533648.html public class PathUtil
{
public static string GetRemotePath(string ip, string localPath)
{
if (!localPath.Contains(":"))
{
throw new Exception($"{localPath}路径必须是全路径且是本地路径");
}
localPath = localPath.Replace(":", "$");
return $@"\\{ip}\{localPath}";
}
public static string GetLocaPath(string remotePath)
{
int index = remotePath.IndexOf("$");
if (index 1)
{
throw new Exception($"{remotePath}路径必须包含磁盘信息");
}
string temp = remotePath.Substring(index - 1);
temp = temp.Replace("$", ":");
return temp;
}
public static string Combine(string path1, string path2)
{
path1 = path1.Trim();
path2 = path2.Trim();
if (path1.EndsWith("\\") && path2.StartsWith("\\"))
{
string ret = (path1 + path2).Replace("\\", "");
return ret;
}
else if (!path1.EndsWith("\\") && !path2.StartsWith("\\"))
{
return path1 + "\\" + path2;
}
// if ((path1.EndsWith("\\") && !path2.StartsWith("\\")) ||
//(!path1.EndsWith("\\") && path2.StartsWith("\\"))) { }
return path1 + path2;
}
}
#region 文件操作部分
///
上一篇:一个实用的C#网页抓取类代码分享
下一篇:最新的Delphi版本号对照