'Why recursive copying creates wrong folder structure if some parts of path are missing?
I build AWS SDK CPP and copy include files using -Force option. When copying does not find some folders in path, it creates but first time when it creates, some folders are skipped. Here is concreate case. For example ws-cpp-sdk-transfer.
I run command
Copy-Item -Path C:\Dev\aws_sdk_cpp\aws-sdk-cpp\aws-cpp-sdk-transfer\include\* -Destination sdk\include -Recurse -Force
Copied folder content is
c:\Temp\sdk\include\transfer\TransferHandle.h
c:\Temp\sdk\include\transfer\TransferManager.h
c:\Temp\sdk\include\transfer\Transfer_EXPORTS.h
I run same Copy-Item again and now folder content is
c:\Temp\sdk\include\aws\transfer\TransferHandle.h
c:\Temp\sdk\include\aws\transfer\TransferManager.h
c:\Temp\sdk\include\aws\transfer\Transfer_EXPORTS.h
c:\Temp\sdk\include\transfer\TransferHandle.h
c:\Temp\sdk\include\transfer\TransferManager.h
c:\Temp\sdk\include\transfer\Transfer_EXPORTS.h
As you see, subfolder aws is created with correct structure.
If I precreate folder sdk\include\aws first copying works fine.
Why folder structure is not maintained when creating it for the first time?
Edit
Content to be copied
C:\Dev\aws_sdk_cpp\aws-sdk-cpp\aws-cpp-sdk-transfer\include\aws\transfer\TransferHandle.h
C:\Dev\aws_sdk_cpp\aws-sdk-cpp\aws-cpp-sdk-transfer\include\aws\transfer\TransferManager.h
C:\Dev\aws_sdk_cpp\aws-sdk-cpp\aws-cpp-sdk-transfer\include\aws\transfer\Transfer_EXPORTS.h
Copied files when sdk\include\aws exists
c:\Temp\sdk\include\aws\transfer\TransferHandle.h
c:\Temp\sdk\include\aws\transfer\TransferManager.h
c:\Temp\sdk\include\aws\transfer\Transfer_EXPORTS.h
Copied files when sdk does not exists. Please notice: aws is missing.
c:\Temp\sdk\include\transfer\TransferHandle.h
c:\Temp\sdk\include\transfer\TransferManager.h
c:\Temp\sdk\include\transfer\Transfer_EXPORTS.h
When I remove trailing \* from source path, output is always the same and result is as I expected.
Copy-Item -Path C:\Dev\aws_sdk_cpp\aws-sdk-cpp\aws-cpp-sdk-transfer\include -Destination sdk\include -Recurse -Force
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|
