RelativeLocation class
설명 | 파일 시스템 내 엔트리(파일, 폴더, 링크)들의 상대 주소. 자세히... |
---|---|
모듈 | InputOutput |
Base classes | GS::Object |
Derived classes | - |
헤더 | RelativeLocation.hpp |
Public 메소드
생성자
복사 생성자
operator=
상태 쿼리
GetStatus
설정
Set
Clear
IsRelativeURL
기본 주소 동작
GetName
SetName
GetLastName
SetLastName
Append
DeleteName
DeleteLastName
MoveLastName
GetLength
IsEmpty
비교
operator==
operator!=
IsAncestorOf
변환
ToURL
플랫폼 의존성 지원
IsLegal
IsMultiplatform
I/O
읽기 -> GS::Object
쓰기 -> GS::Object
디버그
인쇄 -> GS::Object
설명
RelativeLocation은 파일 시스템 내 엔트리(파일, 폴더, 링크)들의 상대 주소 또는 상대 경로입니다. RelativeLocation은 상대 계층(트리)을 산출하는 임의의 긴 이름(class Name을 보십시오)들의 시퀀스입니다. 이것은 여러 개의 메소드들을 이용하여 자유롭게 조작할 수 있습니다. 각 이름은 임의의 긴 문자들의 시퀀스로 구성되어 있습니다.
RelativeLocation은 개별적으로 사용할 수 없으며, 사용 시점에서 class Location로 표현되는 절대 위치에 이어 붙여야 합니다. RelativeLocation은 Location의 로컬 주소에 상대적입니다. (상대 네트워크 주소에 대한 지원은 없습니다) 따라서 상대 위치는 조작, 저장, 복원될 수 있으며 마지막으로 절대 위치의 로컬 주소에 이어 붙입니다.
일반적으로 상대 위치의 내용과 관련된 제한은 없지만 특정 플랫폼에서 사용 지점에 일부 제한이 있을 수 있습니다. 예를 들어 파일을 생성할 때 Windows에서 위치는 '|'또는 '*'와 같은 일부 특수 문자들을 포함할 수 없습니다. 사용자는 현재 플랫폼에서 (IsLegal 메소드를 이용하여), 또는 (IsMultiplatform 메소드를 이용하여) InputOutput 모듈이 지원하는 모든 플랫폼에서 상대 위치가 구문적으로 합법적인지 여부를 확인할 수 있습니다. 구문적으로 합법이라는 것은 단순히 그러한 위치를 가진 파일 시스템 엔트리가 존재할 수도 있다는 것을 의미합니다.
절대 위치에 상대 위치를 이어 붙일 때, "."와 ".." 같은 몇 가지 특수 이름들은 특별한 의미와 특수 처리를 갖고 있습니다. 예를 들어 "/A/B/C" + "../../D" = "/A/D"가 있습니다. 더 많은 정보에 대해서는 해당하는 Location::AppendToLocal 메소드를 보십시오.
RelativeLocation 클래스의 구현은 공간과 속도에 모두 고도로 최적화되어 있습니다. 복사 생성자와 할당 연산자는 빠르며 추가 Heap 공간이 필요하지 않습니다. 내부적으로 상대 위치들은 공동 공유 트리에 저장됩니다. 비슷한 상대 위치들은 다른 세그먼트들에 대해서만 추가 공간을 필요로 합니다.
참고: const Name&를 예상할 수 있는 모든 메소드에서 C 문자열도 전달될 수 있습니다.
왜냐하면 char*에서 Name으로의 암묵적인 변환이 있기 때문입니다.