PROPRIETES DU VOLUME

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 6.0


PROPRIETES DU VOLUME (volume; taille; utilisé; libre)

ParamètreTypeDescription
volumeAlphaNom du volume
tailleNumériqueTaille du volume exprimée en octets
utiliséNumériquePlace utilisée sur le volume exprimée en octets
libreNumériquePlace libre sur le volume exprimée en octets

Description

La commande PROPRIETES DU VOLUME retourne la taille, la place utilisée et la place libre sur le volume dont le nom est passé dans volume. Ces valeurs sont exprimées en octets.

Note : Si volume indique un volume distant non monté, la variable OK prend la valeur 0 et les trois paramètres retournent -1.

Exemple

Votre application comprend des opérations par lots qui sont exécutées la nuit ou pendant le week-end. Ces opérations stockent des fichiers temporaires sur disque. Pour que cette méthode soit aussi autonome et souple que possible, vous écrivez une routine qui va automatiquement chercher et utiliser le premier volume ayant de la place disponible pour les fichiers temporaires. Voici la méthode :

      ` Méthode projet Chercher volume pour place
      ` Chercher volume pour place ( Reel ) -> Alpha
      ` Chercher volume pour place ( Place nécessaire en octets ) -> Nom du volume ou chaîne vide

   C_ALPHA(31;$0)
   C_ALPHA(255;$vaNomDoc)
   C_ENTIER LONG($vlNbVolumes;$vlVolume)
   C_REEL($1;$vlTaille;$vlUtilisé;$vlLibre)
   C_HEURE($vhDocRef)

      ` Initialiser le résultat de la fonction
   $0:=""
      ` Protéger toutes les opérations d'entrée/sortie par une méthode d'interruption d'erreur
   APPELER SUR ERREUR("METHODE ERREUR")
      ` Obtenir la liste des volumes
   TABLEAU ALPHA(31;$taVolumes;0)
   gErreur:=0
   LISTE DES VOLUMES($taVolumes)
   Si (gErreur=0)
         ` Si nous sommes sous Windows, ignorer les deux lecteurs de disquettes
      Si (Sous Windows )
         $vlVolume:=Chercher dans tableau($taVolumes;"A:\")
         Si ($vlVolume>0)
            SUPPRIMER LIGNES($taVolumes;$vlVolume)
         Fin de si 
         $vlVolume:=Chercher dans tableau($taVolumes;"B:\")
         Si ($vlVolume>0)
            SUPPRIMER LIGNES($taVolumes;$vlVolume)
         Fin de si 
      Fin de si 
      $vlNbVolumes:=Taille tableau($taVolumes)
         ` Pour chaque volume
      Boucle ($vlVolume;1;$vlNbVolumes)
            ` Obtenir la taille, la place utilisée et la place libre    
         gErreur:=0
         PROPRIETES DU VOLUME($taVolumes{$vlVolume};$vlTaille;$vlUtilisé;$vlLibre)
         Si (gErreur=0)
               ` Est-ce que la place libre est suffisante (plus 32K) ?
            Si ($vlLibre>=($1+32768))
                  ` Si oui, vérifier que le volume n'est pas verrouillé...        
               $vaNomDoc:=$taVolumes{$vlVolume}+Caractere(Symbole séparateur )
                                       +"XYZ"+Chaine(Hasard)+".TXT"
               $vhDocRef:=Creer document($vaNomDoc)
               Si (OK=1)
                  FERMER DOCUMENT($vhDocRef)
                  SUPPRIMER DOCUMENT($vaNomDoc)
                     ` Si tout est ok, retourner le nom du volume
                  $0:=$taVolumes{$vlVolume}
                  $vlVolume:=$vlNbVolumes+1
               Fin de si 
            Fin de si 
         Fin de si 
      Fin de boucle 
   Fin de si 
   APPELER SUR ERREUR("")

Lorsque cette méthode projet est ajoutée à votre application, vous pouvez écrire :

   $vaVolume:=Chercher volume pour place (100*1024*1024)
   Si ($vaVolume#"")
      ` Continuer
   Sinon
      ALERTE("Un volume avec au moins 100 Mo d'espace libre est nécessaire !")
   Fin de si

Référence

LISTE DES VOLUMES.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant