Why does 'dir' return an empty structure for specific FTP servers?
14 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
MathWorks Support Team
le 22 Juin 2022
Réponse apportée : MathWorks Support Team
le 15 Sep 2022
I am trying to fetch file names, as a structure, from an FTP object using the "dir" command. Why is the resulting structure "allFiles" empty?
% generic server name
fserver = 'ftp.host.domain';
% open the FTP
f = ftp(fserver);
% go to the folder where the file is located
f_dir = cd(f,'/location/');
% look at all files & get their names
allFiles = dir(f_dir);
Réponse acceptée
MathWorks Support Team
le 22 Juin 2022
This can occur if the specific FTP server returns an extra line at the start of the directory listing e.g. "total x".
To work around this issue please try the following steps:
1. Define a custom "dir" parser function:
function names = myCustomDirParser(entries, serverLocale)
% Ignore the first line in the dir output.
entries(1) = [];
entries = join(entries, newline);
% Read the rest of the entries using the normal FTP Unix dir parser.
import matlab.io.ftp.parseDirListingForUnix
names = parseDirListingForUnix(entries, 1, false, "unix", serverLocale);
end
2. Implement the function when fetching file names:
fserver = 'ftp.host.domain';
f = ftp(fserver, DirParserFcn=@myCustomDirParser);
allFiles = dir(f, '/location/');
0 commentaires
Plus de réponses (0)
Voir également
Catégories
En savoir plus sur File Operations dans Help Center et File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!