Sample code for 30+ languages & platforms
Zig

File Existence Check

See more FTP Examples

Testing to see if a file exists on the FTP server. The GetSizeByName method is a convenient way to check if a file exists. It will return -1 if the file does not exist, otherwise it returns the size of the file in bytes.

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("username");
    ftp.setPassword("password");

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

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

    // Test to see if the file exists by getting the file size by name.
    // If a -1 is returned, the file does not exist.
    const file_size = ftp.getSizeByName("test123.txt");
    if (file_size < 0) {
        std.debug.print("file does not exist\n", .{});
    } else {
        std.debug.print("file exists and is {d} bytes in size\n", .{file_size});
    }

    try ftp.disconnect();
}