Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Extraire la liste des fichiers/dossier d'un repertoire

11 réponses
Avatar
mg
Salut,

je suis en train d'experimente un pgm de cliet ftp et j'ai pu trouver pas
mal de code sur le net .
Mon seul probleme consiste a pouvoir recuperé l'integralité d'un dossier
( avec ses sous-sous... dossiers) du serveur.
Or la prupart si je di pas tous le code que je trouve consiste a recuperer
un seul fichier et c'est pas le but ici ( si tas 100 dossiersrs pas exemple
dans des dossier differents.
Evidemment le tous avec des API windows car jaime pas utiliser autre ActiveX
et Winsocket.
merci d'avance

10 réponses

1 2
Avatar
Gloops
Bonjour,

Au risque de dire une grosse bêtise, est-ce que ceci ne t'aiderait pas ?

http://www.allapi.net/apilist/FindFirstFile.shtml

On y trouve bien entendu un lien sur FindNextFile, et une page d'exemple.

Je n'ai jamais testé ça sur un FTP, ça peut être ça le point d'achoppement.
____________
mg a écrit :
Salut,

je suis en train d'experimente un pgm de cliet ftp et j'ai pu trouver pas
mal de code sur le net .
Mon seul probleme consiste a pouvoir recuperé l'integralité d'un dossier
( avec ses sous-sous... dossiers) du serveur.
Or la prupart si je di pas tous le code que je trouve consiste a recuperer
un seul fichier et c'est pas le but ici ( si tas 100 dossiersrs pas exemple
dans des dossier differents.
Evidemment le tous avec des API windows car jaime pas utiliser autre ActiveX
et Winsocket.
merci d'avance




Avatar
Jacques93
Bonjour mg,
mg a écrit :
Salut,

je suis en train d'experimente un pgm de cliet ftp et j'ai pu trouver pas
mal de code sur le net .
Mon seul probleme consiste a pouvoir recuperé l'integralité d'un dossier
( avec ses sous-sous... dossiers) du serveur.
Or la prupart si je di pas tous le code que je trouve consiste a recuperer
un seul fichier et c'est pas le but ici ( si tas 100 dossiersrs pas exemple
dans des dossier differents.
Evidemment le tous avec des API windows car jaime pas utiliser autre ActiveX
et Winsocket.
merci d'avance





Une piste, adaptée de :

http://vbnet.mvps.org/code/internet/ftplist.htm

(Ajout de la date et de la taille) :

http://cjoint.com/?eDou5TO0uo

--
Cordialement,

Jacques.
Avatar
mg
malheuresement ces exemples ne repondent pas a ma question. en effet je sais
faire tous ce qui est note dans les exemples.
moi je veux recuperer tous les fichier (acev les sous dossier) d'un
repertoire que je veux et non jsute un fihcier ou une liste de fichier du
meme repertoire.

merci qd meme des vos reponses.

"Jacques93" a écrit dans le message de news:

Bonjour mg,
mg a écrit :
> Salut,
>
> je suis en train d'experimente un pgm de cliet ftp et j'ai pu trouver


pas
> mal de code sur le net .
> Mon seul probleme consiste a pouvoir recuperé l'integralité d'un dossier
> ( avec ses sous-sous... dossiers) du serveur.
> Or la prupart si je di pas tous le code que je trouve consiste a


recuperer
> un seul fichier et c'est pas le but ici ( si tas 100 dossiersrs pas


exemple
> dans des dossier differents.
> Evidemment le tous avec des API windows car jaime pas utiliser autre


ActiveX
> et Winsocket.
> merci d'avance
>
>

Une piste, adaptée de :

http://vbnet.mvps.org/code/internet/ftplist.htm

(Ajout de la date et de la taille) :

http://cjoint.com/?eDou5TO0uo

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonjour mg
mg a écrit :
malheuresement ces exemples ne repondent pas a ma question. en effet je sais
faire tous ce qui est note dans les exemples.
moi je veux recuperer tous les fichier (acev les sous dossier) d'un
repertoire que je veux et non jsute un fihcier ou une liste de fichier du
meme repertoire.

merci qd meme des vos reponses.




Je ne suis pas sûr de bien comprendre ta question. Ce serait une sorte
de "XCOPY" entre un serveur FTP et une machine cliente ?

--
Cordialement,

Jacques.
Avatar
mg
oui, c exactement ma demande, je souhaite recuperer l'arborescence du
serveur ftp, sans pass par une copie dossier par dossier a la main, comme il
fait nimporte quel client ftp (cuteftp, par exemple).

merci
"Jacques93" a écrit dans le message de news:

Bonjour mg
mg a écrit :
> malheuresement ces exemples ne repondent pas a ma question. en effet je


sais
> faire tous ce qui est note dans les exemples.
> moi je veux recuperer tous les fichier (acev les sous dossier) d'un
> repertoire que je veux et non jsute un fihcier ou une liste de fichier


du
> meme repertoire.
>
> merci qd meme des vos reponses.
>

Je ne suis pas sûr de bien comprendre ta question. Ce serait une sorte
de "XCOPY" entre un serveur FTP et une machine cliente ?

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonjour mg,
mg a écrit :
oui, c exactement ma demande, je souhaite recuperer l'arborescence du
serveur ftp, sans pass par une copie dossier par dossier a la main, comme il
fait nimporte quel client ftp (cuteftp, par exemple).




Il faut assembler les morceaux. En gros :

FtpFindFirstFile
InternetFindNextFile
FtpSetCurrentDirectory

te permettent de récupérer l'arborescence du site FTP, et de t'y
déplacer, et :

FtpGetFile

de downloader les fichiers.

--
Cordialement,

Jacques.
Avatar
mg
justement mon probleme reside de faire cet assermblage. en effet jarrive pas
à combiner les fait de me deplacer dans les sous repertoires.

"Jacques93" a écrit dans le message de news:

Bonjour mg,
mg a écrit :
> oui, c exactement ma demande, je souhaite recuperer l'arborescence du
> serveur ftp, sans pass par une copie dossier par dossier a la main,


comme il
> fait nimporte quel client ftp (cuteftp, par exemple).
>

Il faut assembler les morceaux. En gros :

FtpFindFirstFile
InternetFindNextFile
FtpSetCurrentDirectory

te permettent de récupérer l'arborescence du site FTP, et de t'y
déplacer, et :

FtpGetFile

de downloader les fichiers.

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonjour mg,
mg a écrit :
justement mon probleme reside de faire cet assermblage. en effet jarrive pas
à combiner les fait de me deplacer dans les sous repertoires.




Dans le projet posté sur cjoint :

http://cjoint.com/?eDou5TO0uo

regardes la procédure d'événement :

Private Sub ListView1_DblClick()

Elle ne fait pas autre chose que de se déplacer dans l'arborescence.

--
Cordialement,

Jacques.
Avatar
mg
justement mon probleme consiste a ne pas pouvoir faire cette gymastique.
je crois qu'il faut utiliser la recursivité mais j'arrive pas a
l'implementer.
ca peu etre interessant de faire ca car sur tous les exemples que jai
trouver aucun e fait ce genre d'oeration.

"Jacques93" a écrit dans le message de news:

Bonjour mg,
mg a écrit :
> justement mon probleme reside de faire cet assermblage. en effet jarrive


pas
> à combiner les fait de me deplacer dans les sous repertoires.
>

Dans le projet posté sur cjoint :

http://cjoint.com/?eDou5TO0uo

regardes la procédure d'événement :

Private Sub ListView1_DblClick()

Elle ne fait pas autre chose que de se déplacer dans l'arborescence.

--
Cordialement,

Jacques.


Avatar
Jacques93
Bonjour mg,
mg a écrit :
justement mon probleme consiste a ne pas pouvoir faire cette gymastique.
je crois qu'il faut utiliser la recursivité mais j'arrive pas a
l'implementer.
ca peu etre interessant de faire ca car sur tous les exemples que jai
trouver aucun e fait ce genre d'oeration.




Un petit exemple de récursivité (en local). Il faut une feuille avec une
ListBox et un Bouton. Effectue l'équivalent de DIR /S

Je ne suis pas sûr que faire cela sur un site FTP soit une bonne idée,
certains sites sont énormes (ftp.microsoft.com par exemple).


Option Explicit

Private Sub Command1_Click()
ListDir ("C:RepDeDepart")
End Sub

Private Sub ListDir(sPath As String)
Dim Rep As String
Dim Reps() As String
Dim Count As Integer, i As Integer

List1.AddItem sPath
ListFiles sPath
Rep = Dir(sPath, vbDirectory)
While Len(Rep) > 0
If Rep <> "." And Rep <> ".." Then
If GetAttr(sPath & Rep) = vbDirectory Then
ReDim Preserve Reps(Count + 1)
Count = Count + 1
Reps(Count) = Rep
End If
End If
Rep = Dir()
Wend
For i = 1 To Count
ListDir sPath & Reps(i) & ""
Next i
End Sub

Private Sub ListFiles(sPath As String)
Dim Fic As String

Fic = Dir(sPath & "*.*")
While Len(Fic) > 0
List1.AddItem vbTab & Fic
Fic = Dir()
Wend
End Sub

--
Cordialement,

Jacques.
1 2