1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
use strict;
use Win32::NetResource qw(:DEFAULT GetSharedResources);
if (GetSharedResources(my $resources, RESOURCETYPE_ANY))
{
my $partage = "//serveur/partage";
my @liste = `smbclient $partage -N -c \"recurse;ls\"`;
print "\n";
my $dossierCourant='';
for(my $noLigne=3;$noLigne<@liste;$noLigne++)
{
next if($liste[$noLigne]=~m/\s\s\./); #passe les . et ..
#Dossier
if($liste[$noLigne]=~m/\\\w+/)
{
my $dossier = $liste[$noLigne];
chomp $dossier;
$dossier =~ s/\\/\//g; #Remplace les \ pour des /
$dossierCourant=$dossier;
my @dossiers = split(/\//,$dossier); # extrait tout les noms de dossiers parmi les /
print "Dossier: ".$partage.$dossier."/\n";
#Insertion dans la bd
insertionbd(($partage.$dossier."/"),($dossiers[@dossiers-1])."/",'0');
}
#Fichier
if($liste[$noLigne]=~m/\s\s.*\d$/)
{
my $fichier = $liste[$noLigne];
my $taille = 0;
chomp $fichier;
if($fichier =~ /\s\s(.*)\s{6}[DA]\s+(\d+)/)
{
$fichier = $1;
$taille = $2;
}
$fichier =~ s/\s+$//;
if($taille!=0)
{
print "Fichier: ".$partage.$dossierCourant."/".$fichier."\n";
#Insertion dans la bd
insertionbd(($partage.$dossierCourant."/".$fichier),$fichier,$taille);
}
}
}
} |
Partager