0

Windows Phone 8.1 갤러리에서 사용할 수있는 새로운 미디어 파일이 있는지 확인하는 가장 좋은 방법은 무엇입니까?WIndows Phone 8.1 새 미디어 파일 확인

iOS7 또는 Android와 같은 WP81에는 콘텐츠 관찰자 API가 없습니다.

현재 각 파일의 체크섬을 이름과 크기로 계산하고 windows.storage 목록을 사용하여 로컬에 저장하며 새 항목을 확인할 때마다 모든 파일에 대한 체크섬을 다시 작성하여 비교합니다 저장된 체크섬 목록

파일 수가 많을 경우 엄청난 오버 헤드가 발생합니다.

더 세련된 방법이 있습니까?

+0

아마도 쉬운 해결책이 없습니다. [비슷한 질문은 여기에있다] (http://stackoverflow.com/q/23724001/2681948). – Romasz

답변

0

현재 API가 없으므로이 경우 미디어 파일 (예 : MusicLibrary)에 파일을 나열하고 이후 비교를 위해 저장할 파일을 결정해야합니다. 파일 크기의 합은 좋은 아이디어 일 수 있습니다. 따라서 두 개의 다른 음악 파일이 같은 크기가 될 가능성이 적습니다. 사용자가 한 폴더에서 다른 폴더로 파일을 이동 한 경우 알림을 받으려는 경우에도 적용됩니다 (전체 크기는 변경되지 않음).

// first - a method to retrieve files from folder recursively 
private async Task RetriveFilesInFolder(List<StorageFile> list, StorageFolder parent) 
{ 
foreach (var item in await parent.GetFilesAsync()) list.Add(item); 
foreach (var item in await parent.GetFoldersAsync()) await RetriveFilesInFolder(list, item); 
} 

private async Task<List<StorageFile>> GetFilesInMusic() 
{ 
StorageFolder folder = KnownFolders.MusicLibrary; 
List<StorageFile> listOfFiles = new List<StorageFile>(); 
await RetriveFilesInFolder(listOfFiles, folder); 
return listOfFiles; 
} 

일단 당신 : 당신이 확인하고 싶은 경우 FileQueries 아직 윈도우 폰을 사용할 수 없습니다으로 더 많이 Tuple<file.FolderRelativeId, fileSize> 의 전체 목록을 기억할 수있는, 당신은 간단한 코드는 다음과 같이 할 수 재귀 적으로 파일을 가져 오지해야합니다 파일 목록을 사용하여 다음 앱 시작시 추가 비교를 위해 기억할 사항을 결정할 수 있습니다.