Code covered by the BSD License  

Highlights from
Passive Mode FTP in MATLAB

from Passive Mode FTP in MATLAB by Idin Motedayen
These files allow users to use passive mode FTP in MATLAB.

ftp(host,username,password)
function h = ftp(host,username,password)
% FTP Create an FTP object.
%    FTP(host,username,password) returns an FTP object.  If only a host is 
%    specified, it defaults to "anonymous" login.
%
%    An alternate port can be specified by separating it from the host name
%    with a colon.  For example: ftp('ftp.mathworks.com:34')

% Matthew J. Simoneau, 14-Nov-2001
% Copyright 1984-2008 The MathWorks, Inc.
% $Revision: 1.1.4.3 $  $Date: 2008/11/04 21:20:59 $

% Our FTP implementation uses code from the Apache Jakarta Project.
% Copyright (c) 2001 The Apache Software Foundation.  All rights reserved.

error(javachk('jvm','The FTP object'))

% Short-circuit cases.
if (nargin == 0)
   % All MATLAB objects need a default constructor.  It is useless, though.
   % Immutable fields.
   h.jobject = org.apache.commons.net.ftp.FTPClient;
   h.host = '';
   h.port = 21;
   h.username = '';
   h.password = '';
   % Mutable fields.  Use StringBuffers so these will act as references.
   h.remotePwd = java.lang.StringBuffer('');
   h.type = java.lang.StringBuffer('binary');
   % Make the cast.
   h = class(h,'ftp');
   return
elseif isa(host,'ftp')
   % If given an FTP object, give it back.
   h = host;
   return
end

% Agrument parsing
error(nargchk(1,3,nargin))
switch nargin
case 3
    % Everything passed in.
case 1
    % Default to anonymous login
    username = 'anonymous';
    password = 'anonymous@example.com';
otherwise
    error('MATLAB:ftp:IncorrectArgumentCount','Incorrect number of arguments.')
end

% Immutable fields.
h.jobject = org.apache.commons.net.ftp.FTPClient;
colon = find(host==':');
if isempty(colon)
    h.host = host;
    h.port = 21;
else
    h.host = host(1:colon-1);
    h.port = str2double(host(colon+1:end));
end
h.username = username;
h.password = password;

% Mutable fields.  Use StringBuffers so these will act as references.
h.remotePwd = java.lang.StringBuffer('');
h.type = java.lang.StringBuffer('binary');

% Keep track of passive/active mode
% Added by Idin Motedayen-Aval
h.passiveMode = java.lang.StringBuffer('p');

% Make the cast.
h = class(h,'ftp');

% Connect.
connect(h)

Contact us at files@mathworks.com