【发布时间】:2018-12-19 17:56:03
【问题描述】:
我已经实现了如下 CopyDirectoryAndFiles 功能,但它不能正常工作
案例 - 我想从源复制/创建NAC -> NAC11 -> NAC12(这是文件夹结构)到目标它只创建/复制NAC11->NAC12
我将源路径传递为 - @"C:\TestArea\Destination\SUP000001\20041202-01-0002-001\NAC 它的最后一部分 (\NAC) 在运行时从 UI 中选择要复制的文件夹,它也可以是多个文件夹,如果我只将路径传递为 @"C:\TestArea\Destination\SUP000001\20041202-01-0002-001 它从src->dest 复制所有内容,但我只想选择一个..如何在下面的代码中处理这种情况?
Main() -
copyDirectory(@"C:\TestArea\Destination\SUP000001\20041202-01-0002-001\NAC"
, @"C:\TestArea\Destination\SUP000005\20150622-1205-0015-M");
Method -
private static void copyDirectory(string Source, string destination)
{
string[] Files = null;
if (destination[destination.Length - 1] != Path.DirectorySeparatorChar)
{
destination += Path.DirectorySeparatorChar;
}
if (!Directory.Exists(destination))
{
Directory.CreateDirectory(destination);
}
Files = Directory.GetFileSystemEntries(Source);
foreach (string Element in Files)
{
// Sub directories
if (Directory.Exists(Element))
{
copyDirectory(Element, destination + Path.GetFileName(Element));
}
else
{
// Files in directory
File.Copy(Element, destination + Path.GetFileName(Element), true);
}
}
}
【问题讨论】:
-
您的描述有点混乱。您是要尝试将源结构复制到目标还是仅将指定文件夹中的文件复制到目标?是否应该保留和复制目录结构?
-
源结构到目的地,但取决于用户的选择,所以说用户只从源中选择了一个文件夹,如 NAC 并且使用我当前的代码它包含 (NAC->NAC11->NAC12) 它只复制 NAC11-> NAC12 ,不复制 NAC。目录结构被保留和复制(这是正确的)
标签: c# system.io.file