Sujet: Lister le contenu d'un CD/DVD
13/09/2007 @ 21:54:08: didix: Lister le contenu d'un CD/DVD
Ola la foule :salutation: ,

J'aimerais faire une appli qui liste le contenu d'un CD/DVD, avec le nom du média (et le type CD ou DVD ? ).
L'idée serait qu'elle soit lancée automatiquement quand on insère un média dans le lecteur, soit lancement préalable du programme, soit p-e avec la détection automatique de Windows.

Le traitement d'ajout dans une BD ou un fichier ca devrait aller... il me reste quelques vagues notions de programmation :petrus:

Par contre j'ai pas fort envie de déployer les gros moyens d'un langage compilé, ni de bidouiller avec une sélection de ce qui m'intéresse post-cmd-dir-e:\-/N->C:\Liste.txt

Une idée de la méthode à employer ?
Python ca semble bien pour ce genre de truc ou y a moyen qu'en codant compilable ?

Merci pour vos pistes!

Piaf: A la demande générale d'ovh ( :kiki: :joce: ) je complète l'explication:
Je dispose de CD et de DVD contenant des dossiers contenant eux-mêmes des fichiers graphiques jpg et tif. Le dossier porte le même nom que les images qu'il contient.

Ce qui peut donner:
E:\Image_01\Image_01.jpg
E:\Image_01\Image_01.tif
E:\Image_02\Image_02.jpg
E:\Image_02\Image_02.tif
E:\Image_03\Image_03.jpg
E:\Image_03\Image_03.tif


Le programme en question devrait donc remplir une table avec comme attributs: le nom du dossier, le nom du média, le type de média (pour bien faire, CD ou DVD).
J'ai plus de 200 de ce genre de média, j'ai donc envie d'automatiser au maximum le catalogage...
13/09/2007 @ 22:36:09: Tang: Lister le contenu d'un CD/DVD
Un programme du genre pour lister les répertoires (peut-être liste-t-il les cd/dvd :rep listing.

Ca peut peut-être te mettre sur la voie.

+
13/09/2007 @ 23:19:29: Derdesder: Lister le contenu d'un CD/DVD
Il y a Ant Movie Catalog qui est très bien et dont le créateur est membre d'informaticien.
Je pense que lui pourrait certainement t'aider. :clindoeil:
13/09/2007 @ 23:28:54: zion: Lister le contenu d'un CD/DVD
WhereIsIt sinon est magnifique pour cela avec tout ce dont tu peux rêver par la suite en options de recherches...

Sinon le compilé n'est pas un gros moyen, je le ferais en Delphi :tinostar:
14/09/2007 @ 07:36:16: Clandestino: Lister le contenu d'un CD/DVD
Si c'est uniquement pour des images, un utilitaire comme ACDSee devrait faire ton bonheur. Ensuite, il devrait être facilement possible d'exporter le contenu de la DB vers un format plus exploitable, style XLS, CSV ou autre.
14/09/2007 @ 08:59:44: didix: Lister le contenu d'un CD/DVD
Hmmm...

Oui, ce ne sont que des images, mais de 250Mo en général. J'aimerais autant éviter leur ouverture.

N'empêche que vos remarques me font hésiter et réfléchir sur ce projet et ce que j'en attends.
14/09/2007 @ 09:24:39: Jean-Christophe: Lister le contenu d'un CD/DVD
un vbs ?
Tu insères un disque, tu lances le truc et il te fait ce que tu veux.
Il peut t'en faire une liste csv à importer dans Excel, par exemple.
Plus fouillé, il peut aussi remplir un DB access ou autre, mais là, ce sera plus long à écrire puisque ca fait un bail que je ne l'ai pas fait.
En gros, une fonctione récursive de vérification du contenu d'un répertoire, c'est pas sorcier du tout.

Je peux te faire le script si tu me donnes plus de détails sur ce que tu veux exactement.
14/09/2007 @ 09:25:14: Jean-Christophe: Lister le contenu d'un CD/DVD
tu es sur que les noms des médias sont uniques?
14/09/2007 @ 11:45:39: Derdesder: Lister le contenu d'un CD/DVD
En tout fait : Advanced Disk Catalog

Tu prends la version d'essai , tu testes pour voir si c'est ce que tu cherches , et puis :chut:
14/09/2007 @ 11:57:14: Jean-Christophe: Lister le contenu d'un CD/DVD
le nom du dossier, le nom du média, le type de média (pour bien faire, CD ou DVD).


Donc, si je comprends bien, le nom des fichiers, tu t'en balances?
Il te faut juste une liste de répertoires (et de sous répertoires??) par CD ?

Précise un peu le but, qu'on sache vers quoi aller.

Pour info, j'ai fait un petit vbs qui fait ca, je l'ai sous la main, mais je préfère te le donner quand il fera ce que tu veux :smile:
14/09/2007 @ 13:30:28: didix: Lister le contenu d'un CD/DVD
Vos remarques me font hésiter comme je disais, je n'arrive pas à définir mes besoins :oh:

VBS c'est une piste pour le langage, oui...

Pour les autres questions: normalement le nom du média est unique; les fichiers jpg et tif ont le même nom que le dossier donc ca c'est supposé correct et le nom du dossier me suffit; il n'y a qu'un seul niveau de répertoire.

En fait ce que j'aimerais bien, c'est de pouvoir vérifier à tout moment en consultant une bd, que le nom que je donne aux fichiers graphiques (donc aux dossiers) n'est pas déjà pris, et pareil pour le nom du média.
Avec une fonction "ajout" qui scanne le cd/dvd et ajoute les données dans la bd.

J'espère avoir été plus clair.

Piaf: et l'idéal serait d'avoir une appli sur plusieurs postes, avec une bd partagée.
On est 3 à graver des dvd suivant ce schéma.
14/09/2007 @ 13:39:04: Jean-Christophe: Lister le contenu d'un CD/DVD
Alors...
Ce que je peux faire pour toi (c'est déjà fait, en fait) c'est un système de cataloguage des médias existants.
Tu insères un CD ou DVD, tu lances le truc et ca te donne un fichier texte qui contient le nom du média, le format du média (cd/dvd) et le nom du répertoire.
On peut les mettres tous à la suite l'un de l'autre.
Ensuite, quand tu as ca, tu l'importes dans une petit DB acces et là, tu fais ce que tu veux.
14/09/2007 @ 13:47:53: didix: Lister le contenu d'un CD/DVD
Je n'en demandais pas tant, merci JC! :smile:
Ton code est commenté ? Pour que je puisse quand même voir comment ca marche et éventuellement broder autour ?
14/09/2007 @ 13:56:09: Jean-Christophe: Lister le contenu d'un CD/DVD
oui, j'ai juste encore une petite question.
Le fait que ce soit CD ou DVD, c'est un peu chiant... Suivant les essais que j'ai fait, tous les systèmes ne répondent pas exactement la même chose. Par contre, ce que je peux faire c'est dire que si la taille dépasse 1GO, c'est un DVD.
14/09/2007 @ 14:02:53: didix: Lister le contenu d'un CD/DVD
Voui, mais ce ne sera pas excat à chaque coups... Pas grave.
Mais si tu veux quand même bien laisser le code qui marche pas bien en commentaire, ça me ferait plaisir :wink:
14/09/2007 @ 14:09:50: blietaer: Lister le contenu d'un CD/DVD

VBS BASH c'est une piste pour le langage, oui...
14/09/2007 @ 14:45:37: Jean-Christophe: Lister le contenu d'un CD/DVD
Voilà... Je te conseille de faire un "Edit" sur mon message pour reprendre le contenu, sinon, tu as les numéros des lignes ...
  1. ' Options : 
  2. 'Lettre du lecteur 
  3. DriveLetter = "D" 
  4. 'Chemin du fichier texte 
  5. TargetFile = "c:\catalogue.txt" 
  6. 'Taille limite CD <-> DVD 
  7. MaxCDSize = 1000000000 
  8. 'On crée les objets dont on va avoir besoin 
  9. 'Le File System Object nous permet d'accéder aux répertoires, fichiers, etc. 
  10. Set FSO = CreateObject("Scripting.FileSystemObject"
  11. ForReading = 1 : ForWriting = 2 : ForAppending = 8 : CreateIfNecessary = true : DontCreateIfNecessary = false 
  12. 'On ouvre le fichier texte 
  13. Set TargetFileObject = FSO.OpenTextFile(TargetFile,ForAppending, CreateIfNecessary) 
  14. ' On récupère une fois pour toutes le label du média 
  15. MediaLabel = FMediaLabel(DriveLetter) 
  16. ' On récupère une fois pour toutes la taille du média 
  17. MediaSize = FMediaSize(DriveLetter) 
  18. If MediaSize > MaxCdSize then  
  19. MediaType = "DVD" 
  20. else 
  21. MediaType = "CD" 
  22. end if 
  23. i=0 
  24. 'Lancement de la procédure 
  25. catalog FSO.GetFolder(DriveLetter & ":\"
  26. ' On ferme le Fichier Texte 
  27. TargetFileObject.Close() 
  28. 'On donne le résulta 
  29. MsgBox "Catalogage Terminé. " & i & "répertoire(s) ajoutés" 
  30. 'On Ejecte Le CD 
  31. opencd 
  32. 'Procédures 
  33. '-------------- 
  34. Sub catalog(Folder) 
  35. for each subfolder in Folder.subfolders 
  36. i=i+1 
  37. TargetFileObject.WriteLine(MediaLabel & "|" & MediaType & "|" & SubFolder.Name) 
  38. 'Décommenter la ligne suivante pour faire une recherche récursive dans les sous-répertoires 
  39. 'catalog FSO.GetFolder(subfolder.path) 
  40. next 
  41. End Sub 
  42. Function FMediaLabel(DriveLet) 
  43. Set colDrives = FSO.Drives 
  44. FMediaLabel = "No Label Found" 
  45. For Each objDrive in colDrives 
  46. if objDrive.DriveLetter = DriveLet then 
  47. FMediaLabel = objDrive.VolumeName 
  48. end if 
  49. Next 
  50. End Function 
  51. Function FMediaSize(DriveLet) 
  52. Set colDrives = FSO.Drives 
  53. For Each objDrive in colDrives 
  54. if objDrive.DriveLetter = DriveLet then 
  55. FMediaSize = objDrive.TotalSize 
  56. end if 
  57. Next 
  58. End Function 
  59. Sub opencd 
  60. Set oWMP = CreateObject("WMPlayer.OCX.7"
  61. Set colCDROMs = oWMP.cdromCollection 
  62. For i = 0 To colCDROMs.count-1 
  63. colCDROMs.item(i).eject 
  64. Next 
  65. oWMP.close 
  66. End Sub


J'ai tout commenté, je vais continuer mes recherches sur la manière de déterminer le type de média.
Si je trouve quelque chose de concluant, je le poste :smile:

PS : C'est quoi l'OS des machines?
14/09/2007 @ 15:01:24: didix: Lister le contenu d'un CD/DVD
Merci J-C! :kadreg: :zoubi: :dawacube:

L'OS c'est XP

blietaer > voui... mais bon... :wink:
14/09/2007 @ 20:54:29: Georgio: Lister le contenu d'un CD/DVD
Bon comme demandé dans la shoutbox, j'expose mon cas :wink:

En fait je cherche aussi une application qui listerait mes CD/DVD...

Mais dans mon cas, c'est un gros nombre de support "bordel" gravé à la va vite lors de problèmes (avant des formatages d'urgences, lors de périodes où j'avais des problemes de capacités sur les HDD etc...) que je voulais triés après mais qui se sont finalement entassés.

Le but serait de sortir le listing des fichiers dans un fichier txt (ou xls pourquoi pas, mais bon avec le txt ca serait déjà nickel)

En bref c'est la même appli mais qui listerait les fichiers aussi :wink:
14/09/2007 @ 21:54:12: Jean-Christophe: Lister le contenu d'un CD/DVD
Pas de problème pour la liste des fichiers, mais ca risque de faire des listes kilométriques.
Enfin, c'est toi qui sait :grin:

Donc, pour résumé, le même principe, mais qui irait dans les sous-répertoires et qui donnerait aussi la liste des fichiers.

Au final, tu veux quoi comme info dans la table?

Si tu veux, on peut aussi faire un truc un tout petit peu plus interactif qui demande un nom de CD, comme ca, au fur et à mesure que tu catalogues, tu écris un nom sur le CD (CD01, CD02, etc...)
Donc, pour résumer... Quoi?
Le type de média, c'est vraiment utile, dans ton cas?
Le nom du média à entrer ou à lire dans le MediaLabel, si il y en a un
le nom du répertoire ou le chemin complet (folder\subfolder\subsubfolder)?
le nom du fichier?
sa taille?
On peut presque tout retrouver, si tu veux qque chose en particulier, c'est le moment.
On peut aussi limiter le cataloguage à une liste d'extension, ca, c'est à toi de voir.

Réfléchi à tout ca et dis moi quoi. Je ferai ca lundi. :smile:
Retour