Forum Clubic

Dos ou autre: controler le nb de fichier ou la taille d un dossier

voila mon but est de controler les changements dans un dossier et en cas de changement avéré par le scripts, un envoi d un message type net send doit etre fait.

je pense qu en PHP c possible, il suffirait de faire un script qui via une tache planifiée ecrirait a l instant t le nb de fichier contenu dans un dossier
par ex


<?php

$nb_f = 0;

$opdir = opendir($repimages);
while ($c = readdir($opdir)) 
{
   if (!is_dir($c)) $nb_f++;
}

closedir($opdir);

echo ("Nombre de fichiers : ".$nb_f);

?>

puis mettre ce nombre dans un fichier, puis a la prochaine execution du script, un controle du nb de fichier ancien et nouveau et en cas de changement, une commande system()

logiquement ca devrait marcher non?

avez vous plus simple a proposer?

Es ce possible de faire ca en commande DOS uniquement et simplement?

merci d avance

? Je pige pas ton problème, et surtout pourquoi tu le fais en php? Ton truc doit pouvoir se faire en simple C, avec diropen, etc…

je connais pas le c…

dc je le fais avec des trucs que je connais…
sauf si vous voulez faire le code pour moi?
j ai fait une solution php qui marche. C est a dire que avec une tache planifiée, toutes les 2 minutes, il y a une vérif d un dossier. Si le nombre de fichier augmente, un message a l aide de la commande dos net send est envoyé a plusieurs destinataire.

mais je doute que la solution php soit la plus simple je le concois parfaitement…

je vois. Non, je ferais pas de code à ta place. C’est juste qu’utiliser php pour ça, je trouve ça un peu risqué.

risque dans quel sens?

J’aurais tendance à dire qu’il faut jamais mélanger php & system, surtout si tu connais pas trop le langage. Mais c’est un avis personnel, pas forcément constructif.

tu peux etre plus precis?
quels sont les risques de melanger php et system?

pkoi pas en perl ? :slight_smile:

heu oui pk pas…tu me fais un p’tit cour avant pour le meme prix? :wink:

Florent, edite ton topic et met le langage dans le titre svp :jap:

Je disait perl… parce que
1 - c est parfait pour ce genre de trucs ( administration server )
2 - ca ressemble pas mal au php si tu connait deja le php …
:slight_smile:

Ou en Python, ça a l’air bien fun en plus ce langage :o

j ai jms programme en perl meme si je sais que MRTG l utilise…mais si ca ressemble au php, faudra que j y jette un coup d oeil…

le python c hyper complique d apres ce que j ai compris non?

tien en perl ca ressemblerai a un truc comme ca …

[cpp]$directory = “c:\temp”;
$LogFile = “c:\log.txt”;

open(LOG,"$LogFile") || die “Impossible d ouvrir le fichier log\n”;
$Nbre2FichiersPre = ;
close(LOG);
print (“Nbre de fichier pre : $Nbre2FichiersPre \n”);

unlink ($LogFile);

opendir(DIR,"$directory");
@Files = readdir(DIR);
closedir(DIR);
$Nbre2Fichiers = 0;
foreach $File(@Files)
{
next if ($File =~ /^./) ;
$Nbre2Fichiers = $Nbre2Fichiers +1 ;
}
print (“Nbre de fichiers post : $Nbre2Fichiers \n”);
open(LOG,">$LogFile") || die “Impossible d ouvrir le fichier log\n”;
print LOG “$Nbre2Fichiers”;
close(LOG);

if ($Nbre2FichiersPre != $Nbre2Fichiers )
{
print ("\nErrroR\n");
system (“net send Toto Error … fichiers ajoutes”);
}[/cpp]

Tu voi ca ressemble pas mal a ce que tu a en php :wink:
Apres tu peux pousser un peu plus et reporter les fichiers ajoutés/enlevés en ecrivant le detail du contenu du reportoire dans ton log… les coller dans des arrays et les comparer

Le perl, c est bien :slight_smile:

Plutôt barbare ton exemple (ci étant dit, jamais fait de perl)

barbare tu trouves?

c clair qu il y a des fonctions rigoureusement identique qu en php…