FileSystem::Copy
파일 시스템에서 지정한 엔트리를 복사합니다.
GSErrCode Copy ( const Location& from, const Location& to );
파라미터
- from
- 복사할 엔트리의 위치입니다.
- to
- 복사의 대상 위치입니다.
리턴 값
값 | 의미 |
---|---|
NoError* | OK |
SourceNotFound* | 복사할 소스 엔트리를 발견하지 못했습니다. |
TargetExists* | 파일 시스템에서 대상 위치를 가진 엔트리가 이미 존재합니다. |
DeviceIsFull* | 디바이스가 가득 찼습니다. |
AccessDenied* | 부모 폴더 또는 엔트리 상에서 동작을 허용하지 않습니다. |
Error* | 불특정 오류입니다. |
* FileSystem class 범위에서 선언함
* GS 네임스페이스에서 선언했지만, 글로벌 범위에서 접근 가능함
설명
이 메소드는 위치로 식별되는 파일 시스템 엔트리(파일, 폴더, 링크)를 새로운 위치로 복사합니다. 소스 부모 폴더와 목적지 부모 폴더는 같을 수 있습니다. 복사 동작은 (내부 내용과 함께) 전체 엔트리에게 적용됩니다. 이는 복사 동작이 본질적으로 재귀적이라는 것을 의미합니다. 엔트리의 속성들 (Windows의 경우 read-only flag, Macintosh의 경우 lock flag) 중 일부 역시 복사됩니다.
만약 파일 시스템이 대상 위치를 가진 엔트리(파일, 폴더, 링크)를 이미 포함하고 있으며 소스 부모 폴더를 읽을 수 없거나 대상 부모 폴더를 기록할 수 없다면, Copy는 실패합니다.
만약 복사 동작 도중에 실패하면, 원래 파일 시스템 상태를 복구하려고 시도할 것입니다.

- 만약 목적지 부모 폴더가 루트 폴더이면 이 메소드는 실패합니다. (가상이며 기록할 수 없기 때문입니다)

- 만약 목적지 부모 폴더가 루트 폴더이면 이 메소드는 실패합니다. (가상이며 기록할 수 없기 때문입니다)
- 만약 볼륨이 파일 복사 동작을 지원하지 않으면, 파일은 (열기, 읽기, 쓰기, 닫기 동작을 이용하여) "수동으로" 복사됩니다.
- 리소스 포크(fork)와 데이터 포크(fork) 모두 이동됩니다.