void CopyItem( string path, INodeFactory sourceNode, string copyPath, bool recurse )
{
ICopyItem copyItem = GetCopyItem(sourceNode);
if (null == copyItem)
{
WriteCmdletNotSupportedAtNodeError(path, ProviderCmdlet.CopyItem, CopyItemNotSupportedErrorID);
return;
}
if (!ShouldProcess(path, ProviderCmdlet.CopyItem ))
{
return;
}
try
{
IPathNode node = DoCopyItem(path, copyPath, recurse, copyItem);
WritePathNode(copyPath, node);
}
catch (Exception e)
{
WriteGeneralCmdletError(e, CopyItemInvokeErrorID, path);
}
}