클래스 IO::Spec::Cygwin
클래스 IO::Spec::Cygwin (IO::Spec::Cygwin) (raku-type-io-spec-cygwin)
Raku 인터프리터가 Cygwin에서 돌고 있다면, $*SPEC 변수로 이 타입의 객체를 쓸 수 있어요.
class IO::Spec::Cygwin is IO::Spec::Unix { }
이 클래스와 관련 클래스들에 대한 내용은 IO::Spec도 함께 보면 좋아요.
method abs2rel
method abs2rel(IO::Path:D $path, IO::Path:D $base = $*CWD --> Str:D)
$path를 $base에 상대적인 문자열로 표현해서 돌려줘요. $path와 $base 모두 상대 경로일 수 있어요. $base의 기본값은 $*CWD예요. IO::Spec::Win32의 시맨틱스를 사용해요.
method canonpath
method canonpath(Str() $path, :$parent --> Str:D)
$path의 정규(canonical) 표현 문자열을 돌려줘요. :$parent를 true로 설정하면 부모 디렉터리 참조도 정리해요. 참고: 이 루틴은 파일시스템에 접근하지 않아요.
IO::Spec::Cygwin.canonpath(「C:\foo\\..\bar\..\ber」).say;
# OUTPUT: «C:/foo/../bar/../ber»
IO::Spec::Cygwin.canonpath("foo///./../bar/../ber").say;
# OUTPUT: «foo/../bar/../ber»
IO::Spec::Cygwin.canonpath("foo///./../bar/../ber", :parent).say;
# OUTPUT: «ber»
method catdir
method catdir (*@parts --> Str:D)
여러 경로 조각을 이어 붙여 그 결과 경로의 정규 표현을 문자열로 돌려줘요. @parts는 Str 객체들이고 경로 구분자를 포함할 수 있어요.
IO::Spec::Cygwin.catdir(<foo/bar ber raku>).say;
# OUTPUT: «foo/bar/ber/raku»
method catpath
method catpath (Str:D $volume, Str:D $dir, Str:D $file --> Str:D)
IO::Spec::Win32.catpath와 같지만, 마지막에 모든 백슬래시를 슬래시로 바꿔요.
IO::Spec::Cygwin.catpath('C:', '/some/dir', 'foo.txt').say;
# OUTPUT: «C:/some/dir/foo.txt»
IO::Spec::Cygwin.catpath('C:', '/some/dir', '').say;
# OUTPUT: «C:/some/dir»
IO::Spec::Cygwin.catpath('', '/some/dir', 'foo.txt').say;
# OUTPUT: «/some/dir/foo.txt»
IO::Spec::Cygwin.catpath('E:', '', 'foo.txt').say;
# OUTPUT: «E:foo.txt»
method is-absolute
method is-absolute(Str:D $path --> Bool:D)
$path가 슬래시("/")나 백슬래시("\\")로 시작하면 True를 돌려줘요. 결합 문자(combining character)가 붙어 있어도 그렇고, 앞에 볼륨이 있어도 돼요.
say IO::Spec::Cygwin.is-absolute: "/foo"; # OUTPUT: «True»
say IO::Spec::Cygwin.is-absolute: "/\x[308]foo"; # OUTPUT: «True»
say IO::Spec::Cygwin.is-absolute: 「C:\foo」; # OUTPUT: «True»
say IO::Spec::Cygwin.is-absolute: "bar"; # OUTPUT: «False»
method join
method join(|c)
IO::Spec::Win32.join과 같지만, 최종 결과의 백슬래시를 슬래시로 바꿔요.
method rel2abs
method rel2abs(|c --> List:D)
IO::Spec::Win32.rel2abs과 같지만, 최종 결과의 백슬래시를 슬래시로 바꿔요.
method split
method split(IO::Spec::Cygwin: Cool:D $path)
IO::Spec::Win32.split과 같지만, 최종 결과의 모든 값에서 백슬래시를 슬래시로 바꿔요.
method splitpath
method splitpath(|c --> List:D)
IO::Spec::Win32.splitpath과 같지만, 최종 결과의 모든 값에서 백슬래시를 슬래시로 바꿔요.
method tmpdir
method tmpdir(--> IO::Path:D)
몇몇 대표적인 디렉터리와 환경 변수를 확인해 시스템의 임시 디렉터리를 찾으려 시도해요. 적당한 디렉터리가 없으면 현재 디렉터리를 써요.