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
Version imprimable
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
Sous Windos Win32::DriveInfo, sinon pour les autres OS, tu as Sys::Filesystem
Code:
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";
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
Faut chercher un peu, Win32API::File
Code:
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"; }
si je ne suis interéssé que par les disques fixes "3 => 'DRIVE_FIXED'",
comment puis je faire les mettres dans une variable.
merci
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:
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"; } }
MERCI !!
désolé pour l'abus !!