Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un
répertoire. (pas leur nom ni autres chose, seulement leur nombre)
Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une
variable mais c'est très lent car je peux avoir plusieurs milliers de
fichiers dans le répertoire.
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christian Hubert-Hugoud / weabow - Xtrem7
Une réponse rustique et agricole : tu charges une filelistbox et tu fait un listcount. Pas très élégant, j'en conviens, mais efficace.
Christian
"Jean Naimard" a écrit dans le message de news:4ad76303$0$1003$
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
Une réponse rustique et agricole : tu charges une filelistbox et tu fait un
listcount. Pas très élégant, j'en conviens, mais efficace.
Christian
"Jean Naimard" <Pas_de_spam@yahoo.fr> a écrit dans le message de
news:4ad76303$0$1003$ba4acef3@news.orange.fr...
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans
un répertoire. (pas leur nom ni autres chose, seulement leur nombre)
Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une
variable mais c'est très lent car je peux avoir plusieurs milliers de
fichiers dans le répertoire.
Une réponse rustique et agricole : tu charges une filelistbox et tu fait un listcount. Pas très élégant, j'en conviens, mais efficace.
Christian
"Jean Naimard" a écrit dans le message de news:4ad76303$0$1003$
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
Alain
"Jean Naimard" a écrit dans le message de news: 4ad76303$0$1003$
Bonjour, Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire. Merci de vos conseils de de votre aise.
La méthode la + rapide est avec les apis Win32 Natives (utilisée par Windows) Tu peux demander sur le groupe des pros des apis http://minilien.com/?7bYkTjjcpy (en C/C++, à convertir...)
"Jean Naimard" <Pas_de_spam@yahoo.fr> a écrit dans le message de news:
4ad76303$0$1003$ba4acef3@news.orange.fr...
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans
un répertoire. (pas leur nom ni autres chose, seulement leur nombre)
Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une
variable mais c'est très lent car je peux avoir plusieurs milliers de
fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
La méthode la + rapide est avec les apis Win32 Natives (utilisée par
Windows)
Tu peux demander sur le groupe des pros des apis
http://minilien.com/?7bYkTjjcpy
(en C/C++, à convertir...)
"Jean Naimard" a écrit dans le message de news: 4ad76303$0$1003$
Bonjour, Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire. Merci de vos conseils de de votre aise.
La méthode la + rapide est avec les apis Win32 Natives (utilisée par Windows) Tu peux demander sur le groupe des pros des apis http://minilien.com/?7bYkTjjcpy (en C/C++, à convertir...)
Jean-marc
Jean Naimard wrote:
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
Tu peux effectivement le faire avec Dir et une boucle.
Méthode 1: ----------
n = 0 ss = Dir$(s) While ss <> "" n = n + 1 ss = Dir$ Wend
Mais tu peux aussi le faire avec les API Windows, idéalement dans une dll C appellée depuis VB.
Méthode 2: ----------
export long __stdcall GetFileCount(LPCSTR pszString) { long n = 0L; BOOL bRet = FALSE; HANDLE h = NULL; WIN32_FIND_DATA p;
h = FindFirstFile(pszString, &p); if(h != INVALID_HANDLE_VALUE) { n = 0L; do { if( (p.dwFileAttributes & 0x10)==0) { n++; } bRet = FindNextFile(h, &p); }while(bRet); } return n; }
Appel:
Private Declare Function GetFileCount _ Lib "clibattr.dll" Alias "" _ (ByVal s As String) As Long
n = GetFileCount(s)
Maintenant, comparons nos 2 méthodes. Pour comparer, j'ai créé un répertoire contenant 10000 fichiers, ce qui est énorme et très inhabituel.
Méthode 1, avec Dir$ : 27 ms Méthode 2, avec les API, en C depuis VB : 9 ms
(résultats obtenus en moyennant sur plusieurs milliers d'appels, hors IDe, et en utilisant les timer haute précision, etc.).
La méthode 2 est donc 3 fois plus rapide en effet (sans surprises).
Mais bon, je considère que 27 ms (durée non perceptible par un humain) pour 10000 fichiers (nombre énorme), c'est déjà très très rapide ...
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu
dans un répertoire. (pas leur nom ni autres chose, seulement leur
nombre) Actuellement, j'utilise la fonction dir et un do-loop pour
incrémenter une variable mais c'est très lent car je peux avoir
plusieurs milliers de fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
Tu peux effectivement le faire avec Dir et une boucle.
Méthode 1:
----------
n = 0
ss = Dir$(s)
While ss <> ""
n = n + 1
ss = Dir$
Wend
Mais tu peux aussi le faire avec les API Windows, idéalement
dans une dll C appellée depuis VB.
Méthode 2:
----------
export long __stdcall GetFileCount(LPCSTR pszString)
{
long n = 0L;
BOOL bRet = FALSE;
HANDLE h = NULL;
WIN32_FIND_DATA p;
h = FindFirstFile(pszString, &p);
if(h != INVALID_HANDLE_VALUE)
{
n = 0L;
do
{
if( (p.dwFileAttributes & 0x10)==0)
{
n++;
}
bRet = FindNextFile(h, &p);
}while(bRet);
}
return n;
}
Appel:
Private Declare Function GetFileCount _
Lib "clibattr.dll" Alias "_GetFileCount@4" _
(ByVal s As String) As Long
n = GetFileCount(s)
Maintenant, comparons nos 2 méthodes.
Pour comparer, j'ai créé un répertoire contenant 10000 fichiers,
ce qui est énorme et très inhabituel.
Méthode 1, avec Dir$ : 27 ms
Méthode 2, avec les API, en C depuis VB : 9 ms
(résultats obtenus en moyennant sur plusieurs milliers
d'appels, hors IDe, et en utilisant les timer haute précision, etc.).
La méthode 2 est donc 3 fois plus rapide en effet (sans surprises).
Mais bon, je considère que 27 ms (durée non perceptible par un humain)
pour 10000 fichiers (nombre énorme), c'est déjà très très rapide ...
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
Tu peux effectivement le faire avec Dir et une boucle.
Méthode 1: ----------
n = 0 ss = Dir$(s) While ss <> "" n = n + 1 ss = Dir$ Wend
Mais tu peux aussi le faire avec les API Windows, idéalement dans une dll C appellée depuis VB.
Méthode 2: ----------
export long __stdcall GetFileCount(LPCSTR pszString) { long n = 0L; BOOL bRet = FALSE; HANDLE h = NULL; WIN32_FIND_DATA p;
h = FindFirstFile(pszString, &p); if(h != INVALID_HANDLE_VALUE) { n = 0L; do { if( (p.dwFileAttributes & 0x10)==0) { n++; } bRet = FindNextFile(h, &p); }while(bRet); } return n; }
Appel:
Private Declare Function GetFileCount _ Lib "clibattr.dll" Alias "" _ (ByVal s As String) As Long
n = GetFileCount(s)
Maintenant, comparons nos 2 méthodes. Pour comparer, j'ai créé un répertoire contenant 10000 fichiers, ce qui est énorme et très inhabituel.
Méthode 1, avec Dir$ : 27 ms Méthode 2, avec les API, en C depuis VB : 9 ms
(résultats obtenus en moyennant sur plusieurs milliers d'appels, hors IDe, et en utilisant les timer haute précision, etc.).
La méthode 2 est donc 3 fois plus rapide en effet (sans surprises).
Mais bon, je considère que 27 ms (durée non perceptible par un humain) pour 10000 fichiers (nombre énorme), c'est déjà très très rapide ...
"Jean Naimard" a écrit dans le message de groupe de discussion : 4ad76303$0$1003$
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire.
Merci de vos conseils de de votre aise.
Merci à tous pour votre aide
Cordialement.
"Jean Naimard" <Pas_de_spam@yahoo.fr> a écrit dans le message de groupe de
discussion : 4ad76303$0$1003$ba4acef3@news.orange.fr...
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans
un répertoire. (pas leur nom ni autres chose, seulement leur nombre)
Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une
variable mais c'est très lent car je peux avoir plusieurs milliers de
fichiers dans le répertoire.
"Jean Naimard" a écrit dans le message de groupe de discussion : 4ad76303$0$1003$
Bonjour,
Y a t'il un moyen rapide de connaitre le nombre de fichiers contenu dans un répertoire. (pas leur nom ni autres chose, seulement leur nombre) Actuellement, j'utilise la fonction dir et un do-loop pour incrémenter une variable mais c'est très lent car je peux avoir plusieurs milliers de fichiers dans le répertoire.