2017-01-30 2 views
0

Je dois spécifier un nom de fichier pour la fonction sftp_get() pour télécharger un fichier à partir d'un serveur en utilisant FTP.charger un fichier sachant Seul le début du nom

Le nom réel est: ABCS_170230332211.csv

mais je sais que cette partie: ABCS_170230

J'ai essayé d'utiliser:

sftp_get(s_conn,dir('f1719-20170125*.csv')) mais cela ne fonctionne pas.

d'autres suggestions?

+1

'dir' [vous permet de spécifier des caractères génériques] (https://www.mathworks.com/help/matlab/ref/ dir.html # buscvwz-1) en utilisant '*'. 'dir ('ABCS_170230 * .xls')', par exemple. – excaza

+0

Ok, dans mon cas cela ne fonctionne pas. C'est peut-être parce que j'essaie de charger un fichier depuis un serveur sftp. Laissez-moi ensuite mettre à jour ma question. – Tulkkas

Répondre

1

Utilisation dir avec des jokers *

dir('C:\Users\Data\ABCS_170230*.xls') 
% >> ans = 'ABCS_170230332211.xls' 

Vous pouvez trouver pwd utile pour obtenir le répertoire courant si c'est où votre fichier est stocké.

vous pouvez également créer des chaînes de fusionner d'autres chaînes en utilisant la notation de tableau:

myFile = 'ABCS_'; 
myDate = 170230; 
myDir = [pwd, '\Data\', myFile, str2num(myDate), '*.xls']; 
% myDir = 'C:\Users\UserName\MatlabDevelopment\Data\ABCS_170230*.xls' 
% Where MatlabDevelopment is a stand-in for your current Matlab folder 

dir(myDir) 
% >> ans = 'ABCS_170230332211.xls' 
+1

L'utilisation d'une concaténation de chaîne stricte pour créer des chemins de fichiers est une mauvaise idée. Utilisez ['fullfile'] (https://www.mathworks.com/help/matlab/ref/fullfile.html). – excaza

+0

@excaza "mauvaise idée" dépend sûrement de ce que vous faites avec et de la robustesse de votre système de fichiers ... – Wolfie

+0

C'est une mauvaise idée de ne pas respecter la syntaxe de chemin du système de fichiers, point. – excaza