Dans l'exemple de code suivant ... où filePath est: E:\[D]\My Collection
(un dossier généré par picasa lors de l'archivage des médias) fonctionne correctement sur XP (32 bits). J'ai récemment couru cela sur Vista 64 bits ... et les erreurs ParseDisplayName avec "La valeur ne tombe pas dans la fourchette attendue." Tous les autres dossiers (sans le '[D]') fonctionnent bien. Toute aide serait appréciée.Le chemin valide n'est pas valide dans Vista en utilisant ParseDisplayName. Pourquoi?
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; }
J'ai aussi donné l'API Windows Code Pack un essai (sur Vista). http://code.msdn.microsoft.com/Project/Download/FileDownload.aspx?ProjectName=WindowsAPICodePack&DownloadId=6840 La démo de vignette incluse avec l'exemple de code s'est également écrasée sous les dossiers [D]. - Craig – clsturgeon