2011-05-19 3 views
1

J'essaie d'obtenir une liste de répertoires de fichiers sur un serveur FTP en utilisant les commandes cURL dans Matlab. Actuellement j'essaie quelque chose comme:Liste des fichiers sur ftp en utilisant cURL dans Matlab

[s,w] = dos('curl "ftp://name:[email protected]/directory/"'); 

qui obtient correctement les données et les stocke dans la variable w. Pour obtenir une liste des fichiers dans ce répertoire, je pourrais essayer d'analyser les noms de la variable 'w', mais cela pourrait être un peu compliqué. Existe-t-il un moyen plus simple d'obtenir une liste des noms de fichiers dans le répertoire ftp, ou dois-je essayer de l'extraire de la variable w?

Merci!

EDIT

En utilisant la commande -l:

[s,w] = dos('curl "ftp://name:[email protected]/directory/"'); 

Le ressemble à w résultant:

0 0 0 763 0 0 2319 0 -: - : - 2437FTPtest-D20110322-T022705.But

FTPtest-D20110322-T022705.idx

ftptest-D20110322-T022705.raw

FTPtest-D20110322-T022746.bot

Il semble donc beaucoup mieux, mais étant donné que le premier fichier ne dispose pas d'un saut de ligne avant, il peut être un peu plus difficile. Des idées sur la façon de contourner cela?

Merci!

Répondre

4

Essayez le -l (c'est un L minuscule) Option:

Lorsque l'inscription d'un répertoire FTP, ce commutateur force une seule vue Name-. Particulièrement utile si vous voulez analyser en machine le contenu d'un répertoire FTP puisque la vue de répertoire normale n'utilise pas un aspect ou un format standard.

Cette option provoque l'envoi d'une commande FTP NLST. Certains serveurs FTP répertorient uniquement les fichiers dans leur réponse à NLST; ils n'incluent pas les sous-répertoires et les liens symboliques.

(citation provient de http://curl.haxx.se/docs/manpage.html#-l)

+0

Génial, cela semble définitivement aider. Je ne suis pas sûr que ce soit Matlab ou cURL, mais il ne met pas de saut de ligne avant le premier fichier, ce qui signifie qu'il est brouillé avec les informations de transfert de données. Je suis sûr que je peux contourner cela, mais avez-vous une idée de ce qui se passe? Merci pour l'aide! – Josiah

+1

avant le premier nom de fichier il n'y aura pas de "saut de ligne", les retours à la ligne doivent être après chaque nom de fichier. –

+0

Oui, j'ai commencé à l'analyser en utilisant les retours à la ligne et les retours chariot. On dirait que ça devrait bien marcher. Merci encore pour votre aide. – Josiah

0

Que diriez-vous utiliser un support intégré ftp de Matlab au lieu de bombardements à friser? Voir "help ftp".

+0

La fonction ftp de Matlab n'est pas très robuste, et j'ai vu des gens recommander l'utilisation de cURL à la place. J'ai essayé la fonction dir sur un objet ftp, mais ça ne marchera pas. Je ne sais pas si c'est parce que Matlab ne supporte pas le ftp passif ou si c'est un problème de sécurité. Je ne sais pas assez sur ftp, mais pour le moment, cURL fonctionne mais la fonction ftp de Matlab ne l'est pas. – Josiah

Questions connexes