Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications
Applications Questions sur l'utilisation d'applications, du shell, et des interfaces graphiques (KDE, Gnome, XFCE... )
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/08/2007, 17h48   #1
Membre du Club
 
Avatar de raoulchatigre
 
Inscription : mars 2004
Messages : 97
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2004
Messages : 97
Points : 54
Points : 54
Par défaut Calculer la taille finale d'une image ISO à partir du dossier source

Bonjour à tous,

J'aimerais vous soumettre un problème sur lequel je bute :

J'ai un application en C++ sous linux qui remplis un répertoire avec de nombreux fichiers TIFF et TXT.
Ce dossier est destiné à être gravé sur un CD ou bien un DVD. C'est pourquoi le remplissage du dossier s'arrête lorsque celui-ci atteint une taille maximale :
4 650 000 000 pour un dvd
670 000 000 pour un cd
Notez la marge au cas où je déborde, jusqu'à présent cette marge a toujours été suffisante, jusqu'à ce qu'un beau jour elle ne le soit plus.

J'ai donc eu envie de creuser un peut plus l'histoire, comprendre le stockage des fichiers, leurs calculs, etc...
Et j'avoue avoir du mal à comprendre tout cela...

Mon dossier est stocké sur une partition ext3 et je voudrais savoir en réalité la taille qu'il occupera sur un systeme ISO9660 Niveau 3 avec Joliet.
Au cours de mes recherches je suis tombé sur l'appel systeme 'isosize' qui permet d'obtenir la taille final d'une iso après gravure.
Cependant je ne dispose pas encore de l'iso puisque justement j'attends d'atteindre cette limite pour la créer.

Sachant que le dossier risque de contenir de contenir de nombreux fichiers (environ 130 000 sur un dvd) séparés en paquets de 1000 fichiers.
La taille des blocks peut-elle influer sur la taille finale de l'iso ?
Comment connaitre la taille des blocks sur un cd/dvd ?
Comment convertir la taille sur mon disque pour connaitre la taille sur l'iso finale ?

Bref je ne suis pas très compétent, je suis donc preneur de toute documentation en ligne qui pourrait m'aider à comprendre un peu plus tout cela,
je suis déjà en train de fouiller le wikipedia anglais et google mais j'avoue ne pas avancer très vite.

Merci de votre aide.

PS: J'ai posté dans le forum linux, ne sachant pas vraiment où le mettre, je ne cherche pas nécessairement une méthode en C++, ce que j'aimerai ce sont des informations sur les calculs de taille simplement.
raoulchatigre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 31/08/2007, 19h30   #2
Membre chevronné

 
Avatar de D[r]eadLock
 
Inscription : mai 2002
Messages : 504
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 504
Points : 622
Points : 622
Tu peux peut-être utiliser mkisofs (qui sert a générer une image iso):
Citation:
Envoyé par man mkisofs
-print-size
Print estimated filesystem size in multiples of the sector size (2048 bytes) and exit. This option is needed for Disk At Once mode and
with some CD-R drives when piping directly into cdrecord. In this case it is needed to know the size of the filesystem before the
actual CD-creation is done. The option -print-size allows to get this size from a "dry-run" before the CD is actually written. Old
versions of mkisofs did write this information (among other information) to stderr. As this turns out to be hard to parse, the number
without any other information is now printed on stdout too. If you like to write a simple shell script, redirect stderr and catch the
number from stdout. This may be done with:

cdblocks=` mkisofs -print-size -quiet ... `

mkisofs ... | cdrecord ... tsize=${cdblocks}s -
__________________
1)Avant de poster, merci de lire les règles. 2)Utiliser [code] [/code] pour quoter le code ! 3)Conseils pour le forum C [a lire en entier!]
D[r]eadLock est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/09/2007, 11h01   #3
Membre du Club
 
Avatar de raoulchatigre
 
Inscription : mars 2004
Messages : 97
Détails du profil
Informations personnelles :
Âge : 28
Localisation : France, Bas Rhin (Alsace)

Informations forums :
Inscription : mars 2004
Messages : 97
Points : 54
Points : 54
D[r]eadLock, merci pour l'info,
J'utilise déjà mkisofs pour la création de l'iso.
cette option "printsize" est en effet assez intéressante mais elle est un peu trop gourmande pour être lancé régulièrement.
Alors afin d'anticiper la taille consommée par l'iso finale, j'ai calculé un ratio de taille supplémentaire par fichier défini de façon empirique.

Cela semble convenir pour le moment (le boss a dis OK ), si mes problèmes réapparaissent je mettrai en place un appel à mkisofs --print-size qui a mon avis est la seule solution réellement efficace.

Je passe en résolu, merci
raoulchatigre est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2007, 21h20   #4
Membre chevronné

 
Avatar de D[r]eadLock
 
Inscription : mai 2002
Messages : 504
Détails du profil
Informations personnelles :
Âge : 32

Informations forums :
Inscription : mai 2002
Messages : 504
Points : 622
Points : 622
Citation:
Envoyé par raoulchatigre Voir le message
Je passe en résolu, merci
No pb, tu peux donc, juste avant de lancer la gravure avec ton aproximation, être à-peu-près sur que cela va tenir, voire, enlever quelques fichier...
Après, si tu es vraiment motiv, tu peux récupérer le code de mkisofs et voir leur algo
__________________
1)Avant de poster, merci de lire les règles. 2)Utiliser [code] [/code] pour quoter le code ! 3)Conseils pour le forum C [a lire en entier!]
D[r]eadLock est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h47.


 
 
 
 
Partenaires

Hébergement Web