taille de dossiers
Stagiaire WDF
Inscrit:
01/12/2005 10:17
Post(s): 14
Bonjour

je cherche une fonction me permettant de connaitre le nombre de fichiers et de répertoires dans un répertoire.

Ensuite je cherche un moyen de partager un répertoire. Equivalent à un clic droit sur le répertoire puis cocher l'option "Partager ce dossier sur le réseau".

Merci

neospirit

Contribution le : 31/12/2006 00:33
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Stagiaire WDF
Inscrit:
13/04/2005 13:54
Post(s): 32
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.

Contribution le : 31/12/2006 16:20
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Stagiaire WDF
Inscrit:
01/12/2005 10:17
Post(s): 14
Merci pour ce code je vais m'empresser de l'essayer dès demain.

Pour activer le partage d'un dossier je continue de creuser...

ET BONNE ANNEE 2007

Contribution le : 01/01/2007 23:34
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Stagiaire WDF
Inscrit:
06/05/2005 09:22
Post(s): 16
Citation :

neospirit a écrit:

je cherche une fonction me permettant de connaitre le nombre de fichiers et de répertoires dans un répertoire.

neospirit



Regarde du côté de fListeFichier et fListeRépertoire, c'est très simple à utiliser.

Contribution le : 02/01/2007 10:54
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Stagiaire WDF
Inscrit:
01/12/2005 10:17
Post(s): 14
Oui j'ai regardé mais je ne comprends pas comment me servir de la fonction "callback". J'ai cherché toute la journée mais rien n'y fait. Je l'ai déclarée dans tous les sens mais je n'arrive pas à obtenir un résultat de la fonction "flistefichier" à cause de cela.

Quelqu'un peut-il m'aider svp ? Merci


neospirit

Contribution le : 03/01/2007 23:16
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers

Inscrit:
19/11/2002 12:20
Post(s): 390
En fait en gros la fonction flistefichier permets de dire "je veux la liste des fichiers de tel répertoire" et au lieu que la fonction retourne la liste des fichiers, elle fait appel à une autre fonction windev (la fonction callback) qui elle sera appelée à chaque fichier trouvé.

Donc la fonction flistefichier ne retourne rien d'autres que le nombre de fichiers trouvés, c'est dans la fonction callback que vous devriez mettre votre traitement.

Regardez l'exemple dans l'aide, en cas faites un copier coller, vous verrez.

En gros pour lister les fichiers jpg dans le répertoire c:\test\, vous faites dans un bouton:
nb_fic est un entier =0
nb_fic=flistefichier("c:\test\*.jpg","montre_fichiers")
info("on a trouvé "+nb_fic+" fichiers.")


Il faut donc créer une procédure locale (ou globale) montre_fichiers() qui sera appelée à chaque fichier qui correspond à la recherche:
Procédure montre_fichiers(path,nom_fic,change,pointeur)
//path est le chemin du fichier trouvé
//nom_fic est le nom du fichier trouvé
//change est une constante qui dit si on a changé de répertoire par exemple (premier fichier du répertoire, fichier, on a changé de répertoire)
//pointeur regardez l'aide, mais laissez le de côté pour l'exemple...

trace("Fichier trouvé "+nom_fic+" dans "+path)

//Si vous Renvoyez Faux, vous STOPPEZ la recherche...
//Renvoyer Faux
Renvoyer Vrai


Code tapé comme ça, donc erreur possible, vérifiez par rapport à l'aide, normalement la fenêtre de trace devrait lister les fichiers jpg contenus dans le répertoire c:\test (et sous répertoires).

Contribution le : 04/01/2007 08:31
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Stagiaire WDF
Inscrit:
01/12/2005 10:17
Post(s): 14
Merci Imame !!! Ca marche super !! Par contre je ne comprends pas pourquoi la fonction renvoie à certains moment la valeur 2 puis 1. A quoi correspondent-elles ?

neospirit

Contribution le : 10/01/2007 22:15
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers

Inscrit:
19/11/2002 12:20
Post(s): 390
Citation :

neospirit a écrit:
Merci Imame !!! Ca marche super !! Par contre je ne comprends pas pourquoi la fonction renvoie à certains moment la valeur 2 puis 1. A quoi correspondent-elles ?

neospirit

Euh laquelle, montre_fichiers() ou flistefichier() ?

Si c'est flistefichier() c'est censé être le nombre de fichiers mais honnêtement pour le nombre de fois que je l'ai utilisée je n'ai jamais regardé le résultat de cette fonction :D

Contribution le : 10/01/2007 22:31
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Animateur WDF
Inscrit:
26/06/2002 16:24
De wdforge.org
Post(s): 2822
Merci de vous pencher sur la nouvelle forme de fRep qui elle ne fais plus appel à une callback :

cFic est une chaine
cFic = fRep("c:\*.*",frFichier)
TANTQUE cFic<>""
   //... traitement de cFic ...
   ...
   // Fichier suivant
   fRep("",frFichier)
FIN

Contribution le : 12/01/2007 08:26
_________________
R&B
Contact, CV.
Créer un fichier PDF de la contribution Imprimer


Re: taille de dossiers
Stagiaire WDF
Inscrit:
01/12/2005 10:17
Post(s): 14
Bonjour,

je viens d'essayer la nouvelle version de "frep". Mais malheureusement, mon test plante. Serait-ce dû à "TANT QUE" ?

Merci

Contribution le : 15/01/2007 11:19
Créer un fichier PDF de la contribution Imprimer



 Haut   Précédent   Suivant




Enregistrer votre réponse
CompteNom   Mot de passe   Authentification
Message:


Vous ne pouvez pas débuter de nouveaux sujets.
Vous pouvez voir les sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

[Recherche avancée]


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