Here is one my tool to copy files which are listed in a file, and copy them to a location but keep original path tree. Usefull for TortoiseSVN usually I do it when I need to create the patch but I also want to be sure that if patch doesn't work that I have at least some kind of backup.

For example, you want to save files from c:\folder\subfolderOne\file1.txt and c:\folder\subfolderTwo\file1.txt to c:\copyFolder and to keep structure like c:\copyFolder\subfolderOne\file1.txt and c:\copyFolder\subfolderTwo\file1.txt

Here is the code:

using System;
using System.IO;

namespace CopyFilesKeepPathStructure
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Root source path");
            string rootSourcePath = Console.ReadLine();
            //string rootSourcePath = @" c:\folder";

            Console.WriteLine("Root destination path");
            string rootDestinationPath = Console.ReadLine();
            //string rootDestinationPath = @"c:\copyFolder";

            Console.WriteLine($"File with list of files to be copied:");
            string fileWithListOfFilesToBeCopied = Console.ReadLine();
            if (!(fileWithListOfFilesToBeCopied is null) && !(rootSourcePath is null))
            {
                string[] listOfSourceFiles = File.ReadAllLines(fileWithListOfFilesToBeCopied);
                //string[] listOfSourceFiles = File.ReadAllLines(@"C:\files.txt");

                foreach (string sourceFile in listOfSourceFiles)
                {
                    string folderStructure = sourceFile.Substring(rootSourcePath.Length,
                        sourceFile.Length - rootSourcePath.Length);
                    string destinationFile = rootDestinationPath + folderStructure;
                    Directory.CreateDirectory(Path.GetDirectoryName(destinationFile) ?? string.Empty);
                    File.Copy(sourceFile, destinationFile, true);
                    Console.WriteLine($"Source: {sourceFile}, destination: {destinationFile}");
                }
            }

            Console.WriteLine($"Press any key...");
            Console.ReadKey();
        }
    }
}
Download from here.