위치에서 파일 및 폴더를 가져오는 방법(JavaScript 및 HTML로 작성된 Metro 스타일 앱)

[이 설명서는 임시 설명서로 변경될 수 있습니다.]

폴더, 라이브러리, 장치 또는 네트워크 위치와 같은 특정 위치에 있는 파일 및 폴더를 가져옵니다.

사전 요구 사항

상위 폴더 가져오기

특정 폴더의 내용 목록을 가져오려면 먼저 폴더를 가져와야 합니다.

Metro 스타일 앱 샘플 홈 페이지에 있는 FolderEnumeration 샘플에서는 사진 라이브러리를 가져옵니다.

var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;

이전 예에서는 KnownFolders를 사용해 사진 라이브러리를 가져왔습니다(StorageFolder 개체로서). 라이브러리, 장치 또는 네트워크 위치 등 여러 사용자 리소스를 나타내는 폴더를 가져오려면 KnownFolders 속성을 사용할 수 있습니다.

중요  라이브러리, 장치 또는 네트워크 위치에 액세스하기 위해 KnownFolders 속성을 사용하려면 앱 매니페스트에 해당 기능이 있어야 합니다. 기능에 대한 자세한 내용은 Windows 런타임을 사용하여 사용자 리소스에 액세스빠른 시작: 파일 작업 수행을 참조하세요.

폴더 내용 목록 가져오기

Metro 스타일 앱 샘플 홈 페이지에 있는 FolderEnumeration 샘플에서는 사진 라이브러리의 항목 목록을 가져옵니다.

picturesLibrary.getItemsAsync().then(function (items) {

앞의 예와 같이 getItemsAsync()를 호출하여 폴더(StorageFolder 개체)의 모든 내용 목록을 가져올 수 있습니다. 일부 항목이 필요하지 않은 경우 getItemsAsync(startIndex, maxItemsToRetrieve)를 호출하여 인덱스별로 일정 범위의 폴더 내용을 가져올 수 있습니다.

getItemsAsync 메서드를 폴더에 대해 호출하는 경우 받는 항목 목록은 해당 폴더의 파일 및 하위 폴더로 제한되고 이러한 하위 폴더에 포함된 파일 및 폴더는 포함하지 않습니다.

폴더의 파일 목록이 필요하면 getFilesAsync 메서드를 호출할 수 있고, 폴더 목록이 필요하면 getFoldersAsync 메서드를 호출할 수 있습니다.

가져오기 작업 후에 then을 사용하여 받은 개체 목록을 사용하는 함수(이전 예제의 items)를 정의하고 필요한 추가 작업을 수행합니다.

목록 작업

Metro 스타일 앱 샘플 홈 페이지에 있는 FolderEnumeration 샘플에서는 사진 라이브러리에 있는 items 목록을 사용하여 추가 작업을 수행합니다.

    outputHeader(picturesLibrary.name, items.size);
    items.forEach(function (item) { 
        if (item.isOfType(Windows.Storage.StorageItemTypes.folder)) { 
            output(id(picturesLibrary.name), item.name + "\\"); 
        } 
        else { 
            output(id(picturesLibrary.name), item.fileName); 
        } 
    });

앞의 예에서는 폴더의 name 및 목록의 size를 도우미 함수에 전달하여 사용자에게 이 정보를 표시합니다.

또한 이전 예와 같이 항목 목록을 반복하여 추가 작업을 수행할 수 있습니다. 항목의 목록에 대해 forEach를 호출하여 목록의 항목을 반복할 수 있습니다. forEach에 전달하는 함수는 목록 항목을 인수로 사용해야 하며 목록의 모든 item에 대해 실행됩니다.

항목에 대한 메서드를 개별적으로 호출하여 item을 추가로 처리할 수 있습니다. 이전 예에서는 item가 폴더(StorageFolder 개체)인지 또는 파일(StorageFile 개체)인지 결정하기 위해 파일 및 폴더 모두에 있는 isOfType 메서드의 결과를 StorageItemTypes 열거 값과 비교합니다. 이 비교를 통해 항목에 대한 여러 정보를 output 도우미 함수에 전달하지만 여러 추가 작업도 수행할 수 있습니다.

컨텍스트 정보와 outputHeaderoutput 함수의 작동 방식을 알아보려면 Metro 스타일 앱 샘플 홈 페이지에서 FolderEnumeration 샘플을 다운로드하세요.

전체 예제

// Get folder
var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;

//  Get folder contents
picturesLibrary.getItemsAsync().then(function (items) {
    // Then perform tasks with the list of files and folders that was retrieved

    // For example, display name of containing folder and count of items in folder
    outputHeader(picturesLibrary.name, items.size);

    // For example, display info for each item
    items.forEach(function (item) { 
        if (item.isOfType(Windows.Storage.StorageItemTypes.folder)) { 
            output(id(picturesLibrary.name), item.name + "\\"); 
        } 
        else { 
            output(id(picturesLibrary.name), item.fileName); 
        } 
    }); 
});

관련 항목

파일에서 데이터 액세스

정렬된 파일 목록을 얻는 방법

빠른 시작: 파일 작업

Windows 런타임을 사용하여 사용자 리소스에 액세스

Metro 스타일 앱 샘플 홈 페이지

참조

Windows.Storage.KnownFolders class

Windows.Storage.StorageFile class

Windows.Storage.StorageFolder class

Windows.Storage.StorageItemTypes enum