pure_ftp 0.5.0 copy "pure_ftp: ^0.5.0" to clipboard
pure_ftp: ^0.5.0 copied to clipboard

Simple and powerful FTP client for Dart. Allow you to connect to FTP server and perform basic operations. now supports all native platforms(Web in progress)

example/pure_ftp_example.dart

import 'dart:io';

import 'package:pure_ftp/pure_ftp.dart';
import 'package:pure_ftp/src/file_system/entries/ftp_link.dart';
import 'package:pure_ftp/src/file_system/ftp_file_system.dart';
import 'package:pure_ftp/src/ftp/ftp_socket.dart';
import 'package:yaml/yaml.dart';

void main() async {
  var configFile = File('test_connection2.yml');
  if (!configFile.existsSync()) {
    configFile = File('default_connection.yml');
  }
  final config = loadYaml(await configFile.readAsString());
  final ftpSocket = FtpSocket(
    host: config['host'],
    port: config['port'],
    timeout: const Duration(seconds: 30),
    log: print,
  );
  await ftpSocket
      .connect(
    config['username'],
    config['password'],
    account: config['account'],
  )
      .then((value) {
    print('Connected');
  });

  final fs = FtpFileSystem(socket: ftpSocket);

  await fs.init();

  await fs.listDirectoryNames().then(print);

  await _getDirList(fs);

  try {
    fs.listType = ListType.MLSD;
    await _getDirList(fs);
  } catch (e) {
    // maybe server doesn't support MLSD
    print(e);
  }

  await ftpSocket.disconnect();
}

Future<void> _getDirList(FtpFileSystem fs) async {
  final list = await fs.listDirectory();
  list.forEach(print);
  for (final entry in list) {
    if (entry is FtpLink) {
      print('LinkTarget: ${entry.path} -> ${await entry.linkTarget}');
    }
  }
}
11
likes
0
pub points
76%
popularity

Publisher

verified publisherartemsemirenko.dev

Simple and powerful FTP client for Dart. Allow you to connect to FTP server and perform basic operations. now supports all native platforms(Web in progress)

Repository (GitHub)
View/report issues

License

unknown (LICENSE)

Dependencies

meta

More

Packages that depend on pure_ftp