파일 작업

Adobe AIR 1.0 이상

AIR 파일 API를 사용하면 기본적인 파일 상호 작용 기능을 응용 프로그램에 추가할 수 있습니다. 예를 들어 파일 읽기, 쓰기, 복사, 삭제 등을 수행할 수 있습니다. 응용 프로그램에서 로컬 파일 시스템에 액세스할 수 있으므로 아직 이렇게 하지 않은 경우 AIR 보안을 참조합니다.

참고: 파일 유형을 AIR 응용 프로그램과 연결할 수 있습니다. 그러면 해당 파일을 두 번 클릭하여 응용 프로그램을 열 수 있습니다. 자세한 내용은 파일 연결 관리를 참조하십시오.

파일 정보 가져오기

File 클래스에는 File 객체가 가리키는 파일 또는 디렉토리에 대한 정보를 제공하는 다음과 같은 속성이 포함되어 있습니다.

File 속성

설명

creationDate

로컬 디스크의 파일을 만든 날짜입니다.

creator

더 이상 사용되지 않습니다. 대신 extension 속성을 사용합니다. 이 속성은 Mac Os X 이전의 Mac Os 버전에서만 사용된 파일의 Macintosh 작성자 유형을 보고합니다.

downloaded

(AIR 2 이상) 참조한 파일 또는 디렉토리를 (인터넷에서) 다운로드했는지 여부를 나타냅니다. 이 속성은 파일을 다운로드한 것으로 플래그를 지정할 수 있는 운영 체제에서만 의미가 있습니다.

  • Windows XP 서비스 팩 2 이상, Windows Vista

  • Mac OS 10.5 이상

exists

참조된 파일 또는 디렉토리가 있는지 여부입니다.

extension

마지막 도트(".") 다음에 오는 이름 부분(도트는 포함되지 않음)인 파일 확장명입니다. 파일 이름에 도트가 없으면 확장명은 null입니다.

icon

파일에 대해 정의된 아이콘을 포함하는 Icon 객체입니다.

isDirectory

File 객체가 디렉토리를 참조하는지 여부입니다.

modificationDate

로컬 디스크 파일 또는 디렉토리가 마지막으로 수정된 날짜입니다.

name

로컬 디스크의 파일 또는 디렉토리의 이름(파일 확장명이 있는 경우 확장명도 포함)입니다.

nativePath

호스트 운영 체제 표현의 전체 경로입니다. File 객체의 경로를 참조하십시오.

parent

File 객체가 나타내는 폴더 또는 파일을 포함하는 폴더입니다. File 객체가 파일 시스템의 루트에 있는 파일 또는 디렉토리를 참조하는 경우 이 속성은 null입니다.

size

로컬 디스크에 있는 파일의 크기(바이트)입니다.

type

더 이상 사용되지 않습니다. 대신 extension 속성을 사용합니다. Macintosh에서 이 속성은 Mac Os X 이전의 Mac Os 버전에서만 사용된 4개의 문자로 이루어진 파일 유형입니다.

url

파일 또는 디렉토리의 URL입니다. File 객체의 경로를 참조하십시오.

이러한 속성에 대한 자세한 내용은 Adobe Flash 플랫폼용 Adobe ActionScript 3.0 참조 설명서에서 File 클래스 항목을 참조하십시오.

파일 복사 및 이동

File 클래스에는 파일 또는 디렉토리를 복사하기 위한 copyTo()copyToAsync()라는 두 개의 메서드가 포함되어 있습니다. File 클래스에는 파일 또는 디렉토리를 이동하기 위한 moveTo()moveToAsync()라는 두 개의 메서드가 포함되어 있습니다. copyTo()moveTo() 메서드는 동기식으로 작동하고 copyToAsync()moveToAsync() 메서드는 비동기적으로 작동합니다. 자세한 내용은 AIR 파일 기본 사항을 참조하십시오.

파일을 복사 또는 이동하려면 두 개의 File 객체를 설정합니다. 한 객체는 복사 또는 이동할 파일을 가리키고 복사 또는 이동 메서드를 호출하는 객체이며 다른 객체는 대상(결과) 경로를 가리킵니다.

다음 예제에서는 사용자 문서 디렉토리의 AIR Test 하위 디렉토리에 있는 test.txt 파일을 같은 디렉토리에 copy.txt라는 파일로 복사합니다.

var original:File = File.documentsDirectory.resolvePath("AIR Test/test.txt"); 
var newFile:File = File.resolvePath("AIR Test/copy.txt"); 
original.copyTo(newFile, true); 

이 예제에서는 copyTo() 메서드의 overwrite 매개 변수(두 번째 매개 변수)를 true로 설정합니다. overwrite 매개 변수를 true로 설정하면 기존 대상 파일을 덮어쓰게 됩니다. 이 매개 변수는 선택적입니다. 이 매개 변수를 false(기본값)로 설정하면 이 작업은 대상 파일이 있는 경우 IOErrorEvent 이벤트를 전달하며 파일이 복사되지 않습니다.

“비동기” 버전의 복사 및 이동 메서드는 비동기적으로 작동합니다. 다음 코드에서와 같이 addEventListener() 메서드를 사용하면 작업의 완료 또는 오류 조건을 모니터링할 수 있습니다.

var original = File.documentsDirectory; 
original = original.resolvePath("AIR Test/test.txt"); 
 
var destination:File = File.documentsDirectory; 
destination =  destination.resolvePath("AIR Test 2/copy.txt"); 
 
original.addEventListener(Event.COMPLETE, fileMoveCompleteHandler); 
original.addEventListener(IOErrorEvent.IO_ERROR, fileMoveIOErrorEventHandler); 
original.moveToAsync(destination); 
 
function fileMoveCompleteHandler(event:Event):void { 
    trace(event.target); // [object File] 
} 
function fileMoveIOErrorEventHandler(event:IOErrorEvent):void { 
    trace("I/O Error.");  
} 

또한 File 클래스에는 파일 또는 디렉토리를 시스템 휴지통으로 이동하는 File.moveToTrash()File.moveToTrashAsync() 메서드가 포함되어 있습니다.

파일 삭제

File 클래스에는 deleteFile() 메서드와 deleteFileAsync() 메서드가 포함되어 있습니다. 이러한 메서드는 첫 번째는 동기식으로 작동하고 두 번째는 비동기적으로 작동하여 파일을 삭제합니다. 자세한 내용은 AIR 파일 기본 사항을 참조하십시오.

예를 들어 다음 코드에서는 사용자 문서 디렉토리에 있는 text.txt 파일을 동기적으로 삭제합니다.

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.deleteFile(); 

다음 코드에서는 사용자 문서 디렉토리의 text.txt 파일을 비동기적으로 삭제합니다.

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.addEventListener(Event.COMPLETE, completeHandler) 
file.deleteFileAsync(); 
 
function completeHandler(event:Event):void { 
    trace("Deleted.") 
} 

또한 시스템 휴지통으로 파일 또는 디렉토리를 이동하는 데 사용할 수 있는 moveToTrash()moveToTrashAsync 메서드도 포함되어 있습니다. 자세한 내용은 휴지통으로 파일 이동을 참조하십시오.

휴지통으로 파일 이동

File 클래스에는 moveToTrash() 메서드 및 moveToTrashAsync() 메서드가 포함되어 있습니다. 이러한 메서드는 첫 번째는 동기식으로 작동하고 두 번째는 비동기적으로 작동하여 파일 또는 디렉토리를 시스템 휴지통으로 보냅니다. 자세한 내용은 AIR 파일 기본 사항을 참조하십시오.

예를 들어 다음 코드에서는 사용자 문서 디렉토리에 있는 text.txt 파일을 시스템 휴지통으로 동기적으로 이동합니다.

var file:File = File.documentsDirectory.resolvePath("test.txt"); 
file.moveToTrash(); 
참고: 복구 가능한 휴지통 폴더의 개념을 지원하지 않는 운영 체제에서는 파일이 즉시 제거됩니다.

임시 파일 만들기

File 클래스에는 다음 예제와 같이 시스템의 임시 디렉토리 폴더에 파일을 만드는 createTempFile() 메서드가 포함되어 있습니다.

var temp:File = File.createTempFile(); 

createTempFile() 메서드는 자동으로 고유한 임시 디렉토리를 만들어 고유한 새 위치를 확인하는 작업을 저장합니다.

임시 파일에는 응용 프로그램의 세션 동안 사용되는 정보를 일시적으로 저장할 수 있습니다. 시스템 임시 디렉토리에 고유한 새 임시 디렉토리를 만들기 위한 createTempDirectory() 메서드도 있습니다.

임시 파일은 모든 장치에서 자동으로 삭제되지 않으므로 응용 프로그램을 닫기 전에 삭제하는 것이 좋습니다.