여러 운영 체제에서 패키지 파일과 심볼 링크 파일을 지원합니다.
패키지
- Mac OS에서는 디렉토리가 패키지로 지정될 수 있으며 Mac OS Finder에서 디렉토리가 아니라 하나의 파일로 표시됩니다.
심볼 링크
- Mac OS, Linux 및 Windows Vista는 심볼 링크를 지원합니다. 심볼 링크는 파일이 디스크에 있는 다른 파일이나 디렉토리를 가리키는 것을 허용합니다. 심볼 링크는 별칭과 비슷하긴 하지만 같지는 않습니다. 별칭은 항상 디렉토리가 아닌 파일로 보고되며, 별칭을 읽고 써도 해당 항목이 가리키는 원래 파일 또는 디렉토리는 전혀 영향을 받지 않습니다. 반면에 심볼 링크는 해당 항목이 가리키는 파일 또는 디렉토리와 똑같이 동작합니다. 파일 또는 디렉토리로 보고될 수 있으며, 심볼 링크를 읽거나 쓰면 심볼 링크 자체가 아니라 해당 항목이 가리키는 파일 또는 디렉토리에 영향을 줍니다. 또한 Windows에서는 교차점(NTFs 파일 시스템에서 사용됨)을 참조하는 File 객체에 대한
isSymbolicLink
속성이
true
로 설정됩니다.
File 클래스에는 File 객체가 패키지 또는 심볼 링크를 참조하는지 확인하기 위한
isPackage
및
isSymbolicLink
속성이 포함되어 있습니다.
다음 코드에서는 사용자 바탕 화면 디렉토리를 반복하여 패키지가
아닌
하위 디렉토리를 나열합니다.
var desktopNodes:Array = File.desktopDirectory.getDirectoryListing();
for (var i:uint = 0; i < desktopNodes.length; i++)
{
if (desktopNodes[i].isDirectory && !desktopNodes[i].isPackage)
{
trace(desktopNodes[i].name);
}
}
다음 코드에서는 사용자 바탕 화면 디렉토리를 반복하여 심볼 링크가
아닌
파일 및 디렉토리를 나열합니다.
var desktopNodes:Array = File.desktopDirectory.getDirectoryListing();
for (var i:uint = 0; i < desktopNodes.length; i++)
{
if (!desktopNodes[i].isSymbolicLink)
{
trace(desktopNodes[i].name);
}
}
canonicalize()
메서드는 링크가 참조하는 파일 또는 디렉토리를 가리키도록 심볼 링크의 경로를 변경합니다. 다음 코드에서는 사용자 바탕 화면 디렉토리를 반복하여 심볼 링크인 파일이 참조하는 경로를 보고합니다.
var desktopNodes:Array = File.desktopDirectory.getDirectoryListing();
for (var i:uint = 0; i < desktopNodes.length; i++)
{
if (desktopNodes[i].isSymbolicLink)
{
var linkNode:File = desktopNodes[i] as File;
linkNode.canonicalize();
trace(linkNode.nativePath);
}
}