Sample code for 30+ languages & platforms
Zig

Using the FTP Session Log

See more FTP Examples

The Chilkat FTP component can keep a session log if the KeepSessionLog property is turned on. This is helpful in debugging problems. Chilkat support will usually ask for a session log when working to resolve your problem, because it contains a log of the exact commands sent to the FTP server, and the exact responses received.

Chilkat Zig Downloads

Zig
const std = @import("std");
const chilkat = @import("chilkat");

pub fn main(init: std.process.Init) !void {
    const alloc = init.arena.allocator();

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

    const ftp = try chilkat.Ftp2.init();
    defer ftp.deinit();

    ftp.setHostname("ftp.example.com");
    ftp.setUsername("login");
    ftp.setPassword("password");

    // Set the KeepSessionLog property in order to keep a session log.
    // The session log will continuously grow in memory.  The
    // ClearSessionLog method may be called to clear it.  The session
    // logging may be turned on/off at any point.
    ftp.setKeepSessionLog(true);

    // Connect and login to the FTP server.
    ftp.connect() catch {
        std.debug.print("{s}\n", .{try ftp.getLastErrorText(alloc)});
        return;
    };

    // Change to the remote directory where the existing file is located.
    ftp.changeRemoteDir("junk") catch {
        std.debug.print("{s}\n", .{try ftp.getLastErrorText(alloc)});
        return;
    };

    // To clear the SessionLog at any point, call ClearSessionLog:
    // call ftp.ClearSessionLog();

    // Append moreHamlet.txt to hamlet.txt on the FTP server.
    const local_filename = "moreHamlet.txt";
    const remote_filename = "hamlet.txt";

    ftp.appendFile(local_filename, remote_filename) catch {
        std.debug.print("{s}\n", .{try ftp.getLastErrorText(alloc)});
        return;
    };

    try ftp.disconnect();

    // Display the entire session log:
    std.debug.print("{s}\n", .{try ftp.getSessionLog(alloc)});

    std.debug.print("File Appended!\n", .{});
}