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

- 이 메소드는 루트 폴더에서 실패합니다. (왜냐하면 가상이며 기록할 수 없기 때문입니다)

- 이 메소드는 루트 폴더에서 실패합니다. (왜냐하면 가상이며 기록할 수 없기 때문입니다)
- 만약 볼륨이 파일 복사 동작을 지원하지 않는다면, (open, read, write, close 동작을 이용하여) 파일을 "수동으로" 복사합니다.
- 리소스 포크(fork)와 데이터 포크(fork) 모두 복사됩니다.
다음 버전부터 이용 가능합니다: 1.0
virtual GSErrCode Copy ( const Name& from, Folder& target, const Name& to );
파라미터
- from
- (이 폴더의) 복사할 엔트리의 이름입니다.
- target
- 복사 동작의 목적지 폴더입니다.
- to
- 목적지 폴더에 복사된 엔트리의 이름입니다.
리턴 값
값 | 의미 |
---|---|
NoError* | OK |
SourceNotFound* | 복사할 소스 엔트리를 발견하지 못했습니다. |
TargetExists* | 목적지 폴더 안에 새로운 이름을 가진 엔트리가 이미 존재합니다. |
DeviceIsFull* | 디바이스가 가득 찼습니다. |
AccessDenied* | 이 동작을 이 폴더 혹은 엔트리에서 허용하지 않습니다. |
Error* | 불특정 오류입니다. |
* Folder class 범위에서 선언함
* GS 네임스페이스에서 선언했지만, 글로벌 범위에서 접근 가능함
설명
이 메소드는 이 폴더 안에 있는 이름 from을 가진 파일 시스템 엔트리(파일, 폴더, 링크)를 target으로 지정한 목적지 폴더 안에 to라는 새로운 이름으로 복사합니다. 이름 from과 to는 같을 수 있습니다. 이 폴더와 target 폴더 역시 같을 수 있습니다. (동일한 위치를 참조할 수 있음) Copy 동작은 (내부 내용들과 함께) 전체 엔트리에 적용됩니다. 이것은 복사 동작이 본질적으로 재귀적이라는 것을 의미합니다. 엔트리의 속성들 중 일부 (Windows의 경우 읽기-전용 flag, Macintosh의 경우 잠금 flag) 역시 복사됩니다.
만약 목적지 폴더가 이름 to를 가진 엔트리(파일, 폴더, 링크)를 이미 갖고 있으며 이 폴더를 읽을 수 없거나 목적지 폴더에 기록할 수 없다면 Copy는 실패합니다.
만약 복사 동작 도중 실패하게 되면, 원래 파일 시스템 상태를 복원하려고 시도하게 됩니다.

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

- 만약 목적지 (target) 폴더가 루트 폴더이면 이 메소드는 실패합니다. (왜냐하면 가상이며 기록할 수 없기 때문입니다)
- 만약 볼륨이 파일 복사 동작을 지원하지 않는다면, (open, read, write, close 동작을 이용하여) 파일을 "수동으로" 복사합니다.
- 리소스 포크(fork)와 데이터 포크(fork) 모두 복사됩니다.
다음 버전부터 이용 가능합니다: 1.0
virtual GSErrCode Copy ( const Name& from, Folder& target, const Name& to ) const;
파라미터
- from
- (이 폴더의) 복사할 엔트리의 이름입니다.
- target
- 복사 동작의 목적지 폴더입니다.
- to
- 목적지 폴더에 복사된 엔트리의 이름입니다.
리턴 값
값 | 의미 |
---|---|
NoError* | OK |
SourceNotFound* | 복사할 소스 엔트리를 발견하지 못했습니다. |
TargetExists* | 목적지 폴더 안에 새로운 이름을 가진 엔트리가 이미 존재합니다. |
DeviceIsFull* | 디바이스가 가득 찼습니다. |
AccessDenied* | 이 동작을 이 폴더 혹은 엔트리에서 허용하지 않습니다. |
Error* | 불특정 오류입니다. |
* Folder class 범위에서 선언함
* GS 네임스페이스에서 선언했지만, 글로벌 범위에서 접근 가능함
설명
이 메소드는 이 폴더 안에 있는 이름 from을 가진 파일 시스템 엔트리(파일, 폴더, 링크)를 target으로 지정한 목적지 폴더 안에 to라는 새로운 이름으로 복사합니다. 이름 from과 to는 같을 수 있습니다. 이 폴더와 target 폴더 역시 같을 수 있습니다. (서로 다른 위치들을 참조해야 합니다. 이 조건은 런타임 중에 확인합니다) Copy 동작은 (내부 내용들과 함께) 전체 엔트리에 적용됩니다. 이것은 복사 동작이 본질적으로 재귀적이라는 것을 의미합니다. 엔트리의 속성들 중 일부 (Windows의 경우 읽기-전용 flag, Macintosh의 경우 잠금 flag) 역시 복사됩니다.
만약 목적지 폴더가 이름 to를 가진 엔트리(파일, 폴더, 링크)를 이미 갖고 있으며 이 폴더를 읽을 수 없거나 목적지 폴더에 기록할 수 없다면 Copy는 실패합니다.
만약 복사 동작 도중 실패하게 되면, 원래 파일 시스템 상태를 복원하려고 시도하게 됩니다.

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

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