Share via


쿼리를 사용하여 파일 그룹을 가져오는 방법(JavaScript 및 HTML로 작성된 Metro 스타일 앱)

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

쿼리를 사용하여 지정한 기준에 따라 특정 위치(폴더, 파일 그룹, 라이브러리, 장치 또는 네트워크 위치 등)에서 파일 그룹을 가져옵니다.

사전 요구 사항

상위 폴더 가져오기

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

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

var picturesLibrary = Windows.Storage.KnownFolders.picturesLibrary;

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

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

폴더 쿼리를 만들어 지정하는 대로 파일 구성

폴더에서 폴더 쿼리를 만들면 해당 폴더 및 그 하위 폴더의 파일이 지정하는 기준에 따라 그룹으로 구성됩니다. 결과 그룹은 파일 시스템의 폴더 기능을 모두 가지므로 필요에 따라 그 안의 폴더를 가져오거나 처리할 수 있습니다.

Metro 스타일 앱 샘플 홈 페이지FolderEnumeration 샘플에서는 사진 라이브러리의 사진을 찍거나 만든 월별로 그룹화하는 폴더 쿼리를 만듭니다.

var query = picturesLibrary.createFolderQuery(Windows.Storage.Search.CommonFolderQuery.groupByMonth);

이전 예에서처럼 폴더에 대해 createFolderQuery(query)를 호출하여 폴더 쿼리(StorageFolderQueryResult 개체)를 만들면 지정하는 CommonFolderQuery 값을 기준으로 해당 폴더 및 하위 폴더의 파일을 가상 폴더로 구성할 수 있습니다. 이 예에서는 picturesLibrary 폴더의 사진 파일을 찍거나 만든 월(CommonFolderQuery.groupByMonth)을 기준으로 가상 폴더로 그룹화합니다.

createFolderQuery() 또는 createFolderQueryWithOptions를 호출하여 폴더 쿼리를 만들 수도 있습니다.

쿼리에서 가상 폴더 목록 가져오기

Metro 스타일 앱 샘플 홈 페이지에 있는 FolderEnumeration 샘플에서는 query를 사용하여 가상 폴더 목록을 가져옵니다.

query.getFoldersAsync().then(function (monthList) {
    monthList.forEach(function (month) { 

이전 예에서처럼 폴더 쿼리에 대해 getFoldersAsync()를 호출하여 가상 폴더 목록을 가져올 수 있습니다. then을 사용하여 목록을 처리하는 함수를 정의합니다. 이 예에서는 쿼리에서 월을 나타내는 가상 폴더 목록 monthList를 반환하고 목록을 처리하기 위해 monthList.forEach를 호출하고 각 month 폴더를 처리하는 함수를 정의합니다.

가상 폴더의 파일 목록 가져오기

Metro 스타일 앱 샘플 홈 페이지FolderEnumeration 샘플에서는 month 폴더를 사용하여 해당 월에 찍거나 만든 사진의 목록을 가져옵니다.

        var tempMonthName = month.name; 
        month.getFilesAsync().then(function (files) {

  가상 폴더(month)에 대한 정보를 저장해야만 나중에 사용할 수 있습니다. 이전 예제에서는 가상 폴더의 이름(month.name)을 tempMonthName에 저장하므로 사진 목록(files)을 처리할 때 이 정보를 사용할 수 있습니다.

then을 사용하여 받는 파일 목록을 처리하는 함수를 정의합니다. 파일 목록 작업에 대해 알아보려면 폴더에서 파일 및 폴더 목록 가져오기를 참조하거나 Metro 스타일 앱 샘플 홈 페이지에서 FolderEnumeration 샘플을 다운로드하세요.

전체 예제

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

// Create query
var query = picturesLibrary.createFolderQuery(Windows.Storage.Search.CommonFolderQuery.groupByMonth); 

// Get virtual folders from query
query.getFoldersAsync().then(function (monthList) { 
    monthList.forEach(function (month) {
 
        var tempMonthName = month.name;
        // Get files from virtual folder 
        month.getFilesAsync().then(function (files) { 
            // Then perform tasks with retrieved files
        }); 
    }); 
});

관련 항목

파일에서 데이터 액세스

폴더에서 파일 및 폴더 목록을 가져오는 방법

빠른 시작: 파일 작업

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

Metro 스타일 앱 샘플 홈 페이지

참조

Windows.Storage.KnownFolders class

Windows.Storage.StorageFile class

Windows.Storage.StorageFolder class

Windows.Storage.Search.CommonFolderQuery enum

Windows.Storage.Search.StorageFolderQueryResult class