Sample code for 30+ languages & platforms
Dart

Get FTP Directory Listing Information

See more FTP Examples

_LANGUAGE_ example showing how to get information about files and subdirectories in the current remote FTP directory.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final ftp = CkFtp2();

  ftp.hostname = 'ftp.example.com';
  ftp.username = 'login';
  ftp.password = 'password';

  // Connect and login to the FTP server.
  try {
    ftp.connect();
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // The ListPattern property is our directory listing filter.
  // The default value is "*", which includes everything.
  print(ftp.listPattern);

  // To get file and sub-directory information, simply
  // loop from 0 to ftp.GetDirCount() - 1
  var n = 0;
  n = ftp.getDirCount();
  if (n < 0) {
    print(ftp.lastErrorText);
    return;
  }

  if (n > 0) {
    for (var i = 0; i < n; i++) {

      // Display the filename
      print(ftp.getFilename(i));

      // Display the file size (in bytes)
      print(ftp.getSize(i));

      // Is this a sub-directory?
      if (ftp.getIsDirectory(i)) {
        print('.. this is a sub-directory');
      }

      print('--');
    }
  }

  print('-----------------------------------');

  // Only files and directories
  // matching the ListPattern are returned.
  ftp.listPattern = '*.asp';
  n = ftp.getDirCount();
  if (n < 0) {
    print(ftp.lastErrorText);
    return;
  }

  if (n > 0) {
    for (var i = 0; i < n; i++) {

      // Display the filename
      print(ftp.getFilename(i));

      // Display the file size (in bytes)
      print(ftp.getSize(i));

      print('--');
    }
  }

  ftp.disconnect();
}