Пример #1
0
        /// <summary>
        /// Recursively copies all of the child file nodes from the source parent to the destination parent. Also copies the physical files.
        /// </summary>
        /// <param name="sourceParent">The node to copy from.</param>
        /// <param name="destinationProject">The project to place the copied nodes into.</param>
        /// <param name="destinationParent">The node to copy to.</param>
        private bool CopyNodeFiles(FolderNode sourceParent, Project destinationProject, FolderNode destinationParent)
        {
            bool canceled;

            foreach (Node sourceNode in sourceParent.Children)
            {
                if (sourceNode is FileNode)
                {
                    string fileName        = Path.GetFileName(sourceNode.AbsolutePath);
                    string destinationPath = Path.Combine(destinationParent.AbsoluteDirectory, fileName);
                    Node   addedNode       = destinationProject.AddCopyOfFile(sourceNode.AbsolutePath, destinationPath, out canceled);
                    if (addedNode == null || canceled)
                    {
                        return(false);
                    }
                }
                else if (sourceNode is FolderNode && !(sourceNode is ReferenceFolderNode))
                {
                    FolderNode destNode = destinationProject.CreateAndAddFolder(destinationParent, sourceNode.Caption);
                    // Recure
                    return(this.CopyNodeFiles((FolderNode)sourceNode, destinationProject, destNode));
                }
            }
            return(true);
        }
Пример #2
0
 /// <summary>
 /// Recursively copies all of the child file nodes from the source parent to the destination parent. Also copies the physical files.
 /// </summary>
 /// <param name="sourceParent">The node to copy from.</param>
 /// <param name="destinationProject">The project to place the copied nodes into.</param>
 /// <param name="destinationParent">The node to copy to.</param>
 private bool CopyNodeFiles(FolderNode sourceParent, Project destinationProject, FolderNode destinationParent)
 {
     bool canceled;
     foreach (Node sourceNode in sourceParent.Children)
     {
         if (sourceNode is FileNode)
         {
             string fileName = Path.GetFileName(sourceNode.AbsolutePath);
             string destinationPath = Path.Combine(destinationParent.AbsoluteDirectory, fileName);
             Node addedNode = destinationProject.AddCopyOfFile(sourceNode.AbsolutePath, destinationPath, out canceled);
             if (addedNode == null || canceled)
             {
                 return false;
             }
         }
         else if (sourceNode is FolderNode && !(sourceNode is ReferenceFolderNode))
         {
             FolderNode destNode = destinationProject.CreateAndAddFolder(destinationParent, sourceNode.Caption);
             // Recure
             return this.CopyNodeFiles((FolderNode)sourceNode, destinationProject, destNode);
         }
     }
     return true;
 }