示例#1
0
        private void MergeFiles(IEnumerable <string> relativeNames, string srcDir, string destDir,
                                bool onlyIfNotExists)
        {
            foreach (var relativeName in relativeNames)
            {
                FileInfo input = new FileInfo(Path.Combine(srcDir, relativeName));
                FileInfo output;

                if (onlyIfNotExists)
                {
                    output = new FileInfo(Path.Combine(destDir, relativeName));
                }
                else
                {
                    output = new FileInfo(Path.Combine(destDir, relativeName.Split('\\').Last()));
                }

                if (onlyIfNotExists && output.Exists && !ModelProcessor.IsMarkedToOverride(output.FullName))
                {
                    continue;
                }

                Directory.CreateDirectory(output.Directory.FullName);

                File.WriteAllText(output.FullName, File.ReadAllText(input.FullName));
            }
        }