IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

liste les disques physiques d'un pc


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut liste les disques physiques d'un pc
    bonjour,

    En perl, comment peut t on faire pour lister les lecteurs physiques sur la machine, comme la lettre C , D.... ou autre !!! je ne parle pas des lecteurs réseaux.

    merci

  2. #2
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Sous Windos Win32::DriveInfo, sinon pour les autres OS, tu as Sys::Filesystem

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    #!/usr/bin/perl
    use warnings;
    use strict;
    use Win32::DriveInfo;
    my @drives = Win32::DriveInfo::DrivesInUse();
    my @freelet = Win32::DriveInfo::FreeDriveLetters();
    print "\@drives : @drives\n\@freelet : @freelet\n";

  3. #3
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    c'est pas mal; mais ça ne fait pas difference entre les disques réseaux et les physique de la machine. si tu as une idée ? je suis preneur.

    merci

  4. #4
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Faut chercher un peu, Win32API::File
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    #!/usr/bin/perl
    use warnings;
    use strict;
    use Win32API::File qw/getLogicalDrives GetDriveType/;
     
    my %Correspondance = (
      0 => 'DRIVE_UNKNOWN',
      1 => 'DRIVE_NO_ROOT_DIR',
      2 => 'DRIVE_REMOVABLE',
      3 => 'DRIVE_FIXED',
      4 => 'DRIVE_REMOTE',
      5 => 'DRIVE_CDROM',
      6 => 'DRIVE_RAMDISK',
    );
    my @Drives = getLogicalDrives();
    print "Les disques : \n";
    foreach my $disque ( @Drives ) {
      print "\t- $disque et Type : ",$Correspondance{ GetDriveType( $disque ) },"\n";
    }

  5. #5
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    si je ne suis interéssé que par les disques fixes "3 => 'DRIVE_FIXED'",
    comment puis je faire les mettres dans une variable.

    merci

  6. #6
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 818
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 818
    Points : 499 183
    Points
    499 183
    Par défaut
    Bon t'abuse un peu là quand même. Le script ci-dessus te fait déjà tout. On va pas non plus te mâcher tout quand même. Si tu l'avais testé, t'aurais vu quoi faire

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/usr/bin/perl
    use warnings;
    use strict;
    use Win32API::File qw/getLogicalDrives GetDriveType/;
     
    my %Correspondance = (
      0 => 'DRIVE_UNKNOWN',
      1 => 'DRIVE_NO_ROOT_DIR',
      2 => 'DRIVE_REMOVABLE',
      3 => 'DRIVE_FIXED',
      4 => 'DRIVE_REMOTE',
      5 => 'DRIVE_CDROM',
      6 => 'DRIVE_RAMDISK',
    );
    my @Drives = getLogicalDrives();
    print "Les disques : \n";
    foreach my $disque ( @Drives ) {
      # Je n'affiche que les disques fixes
      my $Num = GetDriveType( $disque );
      if ( $Num == 3 ) {
        print "\t- $disque et Type : ",$Correspondance{ $Num },"\n";
      }  
    }

  7. #7
    Membre du Club
    Inscrit en
    Mars 2006
    Messages
    624
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 624
    Points : 69
    Points
    69
    Par défaut
    MERCI !!

    désolé pour l'abus !!

Discussions similaires

  1. liste des disques physiques sur Linux
    Par sparowme dans le forum Administration système
    Réponses: 3
    Dernier message: 15/11/2008, 02h32
  2. MSSQL2005 - Mettre les index sur un autre disque physique
    Par davidkungfu dans le forum Administration
    Réponses: 1
    Dernier message: 16/06/2008, 12h09
  3. Réponses: 8
    Dernier message: 02/10/2006, 12h44
  4. Recuperer les infos physique du disque dur(marquer,N:Serie )
    Par AKSEL dans le forum API, COM et SDKs
    Réponses: 4
    Dernier message: 07/08/2005, 12h24
  5. Récupèrer la liste des disques durs
    Par Tililian dans le forum C++Builder
    Réponses: 4
    Dernier message: 19/06/2003, 13h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo