Message de rapport:
 

Re: taille de dossiers

Sujet: Re: taille de dossiers
par Aqualung sur 31/12/2006 16:20:04

Bonjour,
voici un exemple de fonction pour le calcul de la taille d'un répertoire, elle peut être adaptée pour calculer le nombre de fichiers.

// Description des paramètres d'entrée/sortie de 'CalculTailleVbs' :
//
// Syntaxe :
//[ <Résultat> = ] CalculTailleVbs (<P_NomRep>[, <P_Datcre>[, <P_DatMod>[, <P_DatAcc>[, <P_FicVerif>[, <P_TailleFic>]]]]])
//
// Paramètres :
// 	P_NomRep : <Nom du répertoire>
// 	P_Datcre : <Date de création (renvoyée)>
// 	P_DatMod : <Date de modification (renvoyée)>
// 	P_DatAcc : <Date accès (Renvoyée)>
// 	P_FicVerif : <Fichier dont l'existence doit être vérifiée>
// 	P_TailleFic : <Taille du fichier à vérifier>
// Valeur de retour :
// 	réel : <Taille du répertoire>
// Notes :
// Calcul de la taille d'un répertoire par OLE VBS
// Cette procédure peut en plus calculer la taille d'un fichier particulier
// Remarque :
// le format date en entier de Windev est 	un entier long qui correspond au nombre de jours écoulés 
//											depuis le 1er janvier 1800 plus 1 
// le format date en entier de windows est	un entier long qui correspond au nombre de jours écoulés
//											depuis le 1er janvier 1900
// date Windows et Windev
// Exemple :
// Indiquez ici un exemple d'utilisation.
//
FONCTION GLOBALE CalculTailleVbs(P_NomRep,P_Datcre="",P_DatMod="",P_DatAcc="",P_FicVerif="",P_TailleFic=0)
L_Fso est un objet OLE "Scripting.FileSystemObject"
L_Datcre, L_DatAcc, L_Datmod, L_Datcre_A, L_DatAcc_A, L_Datmod_A sont chaîne
L_Datcre_N, L_DatAcc_N, L_Datmod_n sont entier 
L_DateWin_n est entier 
L_DateWin  est chaîne="19000101"
L_Repert est un objet OLE dynamique
L_Taille est réel 
SI fRep(P_Nomrep+"\*.*")<>"" OU fRep(P_Nomrep+"\*.*",frRépertoire)<>"" ALORS
	L_Repert=L_Fso>>GetFolder(P_NomRep)
	SI L_Repert>>Attributes()<>22 ALORS
		L_DateWin_n=DateVersEntier(L_DateWin)-2
		L_Taille=L_Repert>>size()
		// Date de création
		L_Datcre=L_Repert>>DateCreated()
		L_Datcre_A=ExtraitChaîne(L_Datcre,1,".")
		L_Datcre_n=Val(L_Datcre_A)+L_DateWin_n
		P_Datcre=EntierVersDate(L_Datcre_n)
		// Date de modification
		L_DatMod=L_Repert>>DateLastModified()
		L_DatMod_A=ExtraitChaîne(L_DatMod,1,".")
		L_DatMod_n=Val(L_DatMod_A)+L_DateWin_n
		P_DatMod=EntierVersDate(L_DatMod_n)
		// Date dernier accès
		L_DatAcc=L_Repert>>DateLastAccessed()
		L_DatAcc_A=ExtraitChaîne(L_DatAcc,1,".")
		L_DatAcc_n=Val(L_DatAcc_A)+L_DateWin_n
		P_DatAcc=EntierVersDate(L_DatAcc_n)
		SI SansEspace(P_Ficverif)<>"" ALORS
			SI fRep(P_Nomrep+"\"+P_Ficverif)<>"" ALORS
				P_Taillefic+=fTaille(P_Nomrep+"\"+P_Ficverif)
			FIN
		FIN
	SINON
		L_Taille=0
	FIN
	libérer L_Repert
FIN
RENVOYER L_Taille


Pour le partage, je ne l'ai jamais fait.

Bon dev.
Connexion
Menu
Chercher WDForge
Chercher Web
Partenaires
Visualiser tous les Partenaires...
WinDev, WebDev, WinDev Mobile et HyperFile sont des marques déposées par PCSoft. |  Voter |  Legal |  Contact |   XOOPS 2.0.13.2