2014-02-13 4 views
0

기계에 문제가 있습니다. Windows 8.1 및 x64이지만 실제 문제는 아닙니다.RetrievePropertiesAsync 및 COMException E_FAIL

다음 코드에서는 ARM, x86 및 x64 플랫폼 모두에서 Windows 8 및 8.1을 실행하는 장치 및 랩톱에서이 코드를 테스트했습니다. 그리고이 랩톱 하나만이 COMException을 던집니다.

이 코드는 :

// Yes, I have checked the appropriate box in the manifest to access VideosLibrary. 
StorageFolder vidFolder = KnownFolders.VideosLibrary; 

var SystemFreeSpace = "System.FreeSpace"; 
var SystemCapacity = "System.Capacity"; 
var SystemPercentFull = "System.PercentFull"; 
var properties = new List<string>() { SystemFreeSpace, SystemCapacity, SystemPercentFull }; 

// THIS blows up on only one device. Though on Windows 8.1 I get null values (different issue). 
var props = await vidFolder.RetrievePropertiesAsync(properties); 

이 예외 메시지입니다.

오류 코드 :

-2147467259

오류 메시지 :

오류 HRESULT E_FAIL는 COM 구성 요소에 대한 호출에서 반환되었습니다.

줄 번호 :

mscorlib에

은 그래서 어쩌면이 개인의 동영상 자체 폴더 있다는 thingking하고는 문제입니다. USB 드라이브의 속성을 검색하려고 할 때 코드가 제대로 작동합니다.

이 문제가 발생한 사람이 있습니까?

+0

E_FAIL은 진단 할 수없는 오류 코드입니다. 드라이브에서만 의미가있는 폴더의 속성을 묻는 것은 반드시 그 파일과 관련이 있어야합니다. –

+0

@HansPassant 오류 코드 정보를 제공해 주셔서 감사합니다. 하지만 당신의 의심이 옳지 않았습니다. 이 사용자의 VideosLibrary 폴더가 손상되었음을 알립니다. 그들은 현재 VideoLibrary "폴더"를 삭제 한 다음 Windows 탐색기에서 "라이브러리> 기본 라이브러리 복원"을 마우스 오른쪽 버튼으로 클릭해야했습니다. 이 문제가 해결되었습니다. –

답변

1

사용자의 VideosLibrary "폴더"가 손상되어서 문제가 발생한 것 같습니다. 이것은 Win7에서 Win8 로의 업그레이드 프로세스로 인해 발생할 수 있습니다 (이론 만).

해결 방법 : 오래된 손상된 VideosLibrary를 삭제 한 다음 Windows 탐색기 브라우저를 열고 "라이브러리> 기본 라이브러리 복원"을 마우스 오른쪽 단추로 클릭합니다.

restore default libraries