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