2009-09-08 1 views
0

다음 코드 예제에서 ... filePath가 E:\[D]\My Collection (미디어를 아카이브 할 때 picasa로 생성 된 폴더)은 XP (32 비트)에서 정상적으로 작동합니다. 나는 최근에 비스타 64 비트에서 이것을 돌 렸습니다. "ParseDisplayName 오류가"기대 값 범위에 들지 않습니다. " 다른 모든 폴더 ('[D]'제외)는 정상적으로 작동합니다. 어떤 도움을 주시면 감사하겠습니다.유효한 경로는 ParseDisplayName을 사용하여 Vista에서 유효하지 않습니다. 왜?

 
try 
{ 
    int cParsed = 0; 
    int pdwAttrib = 0; 
    string filePath = Path.GetDirectoryName(file); 
    pidlMain = IntPtr.Zero; 
    folder.ParseDisplayName(IntPtr.Zero,IntPtr.Zero,filePath,out cParsed,out pidlMain,out pdwAttrib); 
} 
catch (Exception ex) 
{ 
Marshal.ReleaseComObject(folder); 
throw ex; 
} 
+0

나는 또한 윈도우 API 준 코드 팩을 사용해보십시오 (Vista). http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=WindowsAPICodePack&DownloadId=6840 [D] 폴더가 적용될 때 샘플 코드에 포함 된 축소판 데모도 충돌합니다. - Craig – clsturgeon

답변

0

이 (관계없이 코드 팩을, 당신이 직접 쉘 API를 사용하고 구문 분석 이름을 얻어서 그것을 repro 수 있습니다) 발생하면 일반 파일 대화 상자에서 폴더 (또는 열기의 모든 유형을 선택하면 비스타에 대화 상자)를 왼쪽 트리보기에서 선택하십시오.

예를 들어 언급하면 ​​- 코드 팩의 샘플입니다. 샘플을 실행하고 찾아보기를 선택한 다음 CFD에서 왼쪽 트리보기에서 폴더를 선택하십시오. 폴더 안에 들어가서 "열기"를 클릭하면 같은 문제가 발생합니다. 구문 분석 이름은 다음과 같습니다.

c:\folder\folder (중복 폴더를 확인하십시오).

Vista의 알려진 문제는 ... 내가 더 그것에 대한 패치가 없습니다 두렵다 (또는 내가 알고 있는데 그이어야 - 당신이 Win7에의 :-)로 전환하지 않는 한)

+0

Keeron - 고마워요. 무슨 뜻인지 알 겠어. 나머지 API 코드 팩을 검토하는 데 더 많은 시간을 할애해야합니다. 나는 아직도 나의 원래 질문에 대한 답을 찾는다. 다시 감사합니다. – clsturgeon

관련 문제