J'ai fait une application qui analysait la bibliothèque iTunes pour récupérer son contenu. Cela fonctionne bien dans la plupart des cas, mais si un utilisateur déplaçait sa bibliothèque ailleurs que le dossier iTunes par défaut (voir: http://lifehacker.com/238296/ultranewb--how-a-move-votre-itunes-library-a-an-external-drive < / a>), alors j'ai besoin d'un moyen de trouver ce chemin. P>
sur Mac, je cherchais à ~ / bibliothèque / préférences / com.apple.itus.plist. Il y a un paramètre appelé "Alis: 1: Lieu de bibliothèque iTunes" mais il contient plusieurs paramètres tous concaténés et convertis en hexadécimal. P>
sur Windows, j'ai trouvé ce fichier "C: \ Documents et paramètres \\ Data \\ Data \ Apple Computer \ iTunes \ iTunesprefs.xml" contenant un paramètre "Library iTunes XML Emplacement: 1" Mais celui-ci est codé. < / p>
Toute aide serait grandement appréciée.
Merci! P>
3 Réponses :
Je ne peux pas vous aider avec les trucs Windows, mais sur le Mac Ce que vous constatez dans ce fichier Prefs est la vieille alias de la vieille-école. Jetez un coup d'œil ou utilisez simplement la classe Bdalias de Chris Hanson pour le convertir en chemin. P>
Merci beaucoup. Je vais essayer.
sous Windows, la bibliothèque Il doit être relativement facile à décoder cette valeur en utilisant votre langue de choix; Votre plate-forme peut même fournir des bibliothèques utilitaires qui rendent ce trivial. En C #, par exemple, la fonction de décodage ressemblerait à ceci comme suit: p> iTunes xml Emplacement: 1 code> entrée dans
iTunesprefs.xml code> est un BASE 64 encodé chaîne unicode, vous devez donc le décoder avant de pouvoir l'utiliser. Sur mon PC, il décode
c: \ documents et paramètres \ emerick \ Mes documents \ ma musique \ iTunes \ iTunes music bibliothèque.xml code>.
Merci je vais essayer! J'ai vu le fichier .pref mais je ne savais pas comment il a été codé.
Comme les autres signalent "Alis: 1: Lieu de la bibliothèque iTunes" est des données d'alias. Voici comment trouver le chemin des données du système d'exploitation X en utilisant Python.
#!/usr/bin/env python import commands, plistlib from Carbon import File from os.path import expanduser PLIST_PATH = '~/Library/Preferences/com.apple.iTunes.plist' PLIST_KEY = 'alis:1:iTunes Library Location' def resolve_path_from_alias_data( alis ): fs_ref = File.Alias( rawdata=alis ).FSResolveAlias( None )[0] file_path = fs_ref.as_pathname() return file_path plist_str = commands.getoutput( '/usr/bin/plutil -convert xml1 -o - "' + expanduser( PLIST_PATH ) + '"' ) plist_data = plistlib.readPlistFromString( plist_str ) alis_data = plist_data[ PLIST_KEY ].data file_path = resolve_path_from_alias_data( alis_data ) print repr( file_path )
Associé (spécifique à Mac): Stackoverflow.com/Questtions/3243951/...