C#实现文件和目录的复制替换
2021-01-20 13:11
标签:sts exist relative ram std sys 一个 else item 有这么一个情况,经常遇到一个项目的某个部分的功能与另一个项目的某个部分的代码是一样的,经常会遇到搬代码的情况,就觉得需要这么一个工具来自动搬 就以C#为例,我发现虽然文件和目录都是可以copy的,但是呢,tfs或者说其他的源代码管理工具不一定就自动加上去了,所以最好是第一次搬动还是手工搬吧,有些整个项目都是新增的情况下。 核心代码如下,供参考: 这是copy主方法体,其中souce是源代码根目录,target:目标代码目录,itemList:是文件或者目录相对于源代码根目录的路径 其中引用到的方法CopyFileOnly copyDirectory CopyFile C#实现文件和目录的复制替换 标签:sts exist relative ram std sys 一个 else item 原文地址:https://www.cnblogs.com/tianxue/p/12128412.htmlprivate static void CopyConstant(string source, string target, Liststring> itemList)
{
List
public static void CopyFileOnly(string souce, string target)
{
System.IO.FileInfo file = new FileInfo(souce);
string destDirectoryFullName = target.Replace(file.Name, "");
if (!System.IO.Directory.Exists(destDirectoryFullName))
{
System.IO.Directory.CreateDirectory(destDirectoryFullName);
}
file.CopyTo(target, true);
}
public static void copyDirectory(string sPath, string dPath)
{
string[] directories = System.IO.Directory.GetDirectories(sPath);
if (!System.IO.Directory.Exists(dPath))
{
System.IO.Directory.CreateDirectory(dPath);
}
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(sPath);
System.IO.DirectoryInfo[] dirs = dir.GetDirectories();
CopyFile(dir, dPath);
if (dirs.Length > 0)
{
foreach (System.IO.DirectoryInfo temDirectoryInfo in dirs)
{
string sourceDirectoryFullName = temDirectoryInfo.FullName;
string destDirectoryFullName = sourceDirectoryFullName.Replace(sPath, dPath);
if (!System.IO.Directory.Exists(destDirectoryFullName))
{
System.IO.Directory.CreateDirectory(destDirectoryFullName);
}
CopyFile(temDirectoryInfo, destDirectoryFullName);
copyDirectory(sourceDirectoryFullName, destDirectoryFullName);
}
}
}
///