2012-12-14 2 views
0

나는 awaitKnownFolders.VideosLibrary.GetFilesAsync() 방법으로 비디오를 반복하고 있으며, 처음에는 내 코드에 문제가 있다고 생각했지만, SSD 드라이브가있는 컴퓨터에서는 5-20 초가 걸렸습니다. 파일 가져 오기. 폴더에는 5 개의 작은 파일 만 있습니다.KnownFolders.VideosLibrary.GetFilesAsync() 매우 오랜 시간이 걸립니다.

심지어 낯선 사람은 await KnownFolders.VideosLibrary.GetFolderAsync("subfolder")으로 하위 폴더를 지정한 다음 해당 폴더에서 await folder.GetFilesAsync()을 수행하면 두 번째로 파일을 반복합니다.

PicturesLibrary에서 동일한 증상이 나타납니다. 나 뿐인가요? 아마도 OS가 네트워크에서 "연결된"비디오 라이브러리를로드하려고하기 때문일 것입니다 (이것이 내 생각에 가장 좋습니다).

답변

2

나는 그것이 단지 당신이라고 생각합니다. 이게 작동해야합니다 :

StorageFolder videosFolder = KnownFolders.VideosLibrary; 

IReadOnlyList<StorageFile> fileList = await videosFolder.GetFilesAsync(); 
IReadOnlyList<StorageFolder> folderList = await videosFolder.GetFoldersAsync(); 

var count = fileList.Count + folderList.Count; 
StringBuilder outputText = new StringBuilder(videosFolder.Name + " (" + count + ")\n\n"); 

foreach (StorageFolder folder in folderList) 
{ 
    outputText.AppendLine(" " + folder.DisplayName + "\\"); 
} 

foreach (StorageFile file in fileList) 
{ 
    outputText.AppendLine(" " + file.Name); 
} 

OutputTextBlock.Text = outputText.ToString(); 

자신을 테스트하려면 Folder Enumeration Sample을 실행하십시오. 그것이 위의 발췌 문장의 출처입니다.

+0

코드 샘플을 제공하는 데 20 초 이상 걸리고 GetFilesAsync() 부분에 매달려 있기 때문에이 코드는 내 컴퓨터 일뿐입니다. 오늘 RT 장치에있는 코드를 다시 시도 하겠지만, 지금은 내가 사용할 수없는 라이브러리가없는 "누락 된"라이브러리 폴더와 관련이 있다고 생각합니다. –

+0

Yepp는 집에서 훨씬 빠르게 작동하므로 직장에서 파일을 나열하는 데 지연이있을 수 있습니다. 집에서 현재 사용 가능한 링크 된 비디오 라이브러리/폴더가 누락 된 것 같습니다. –

관련 문제