Sample code for 30+ languages & platforms
Unicode C

Get a Remote FTP File's Size by Name

See more FTP Examples

Demonstrates the Chilkat Ftp2.GetSizeByName method, which returns the size in bytes of a named file in the current remote directory as a 32-bit integer. The only argument is the filename — a name, not a path. It returns -1 when the file is not found or the size cannot be obtained.

Background: This is the direct way to get one file's size when you already know its name, typically via a SIZE command — no full directory listing required. Because the result is 32-bit, it cannot represent files past about 2 GB; use GetSizeStrByName for large files. The argument must be a bare filename in the current directory, so ChangeRemoteDir to the right place first.

Chilkat Unicode C Downloads

Unicode C
#include <C_CkFtp2W.h>

void ChilkatSample(void)
    {
    BOOL success;
    HCkFtp2W ftp;
    int fileSize;

    success = FALSE;

    //  Demonstrates the Ftp2.GetSizeByName method, which returns the size in bytes of a named file in
    //  the current remote directory as a 32-bit integer.  The only argument is the filename (a name,
    //  not a path).

    ftp = CkFtp2W_Create();

    CkFtp2W_putHostname(ftp,L"ftp.example.com");
    CkFtp2W_putUsername(ftp,L"myFtpLogin");

    //  Normally you would not hard-code the password in source.  You should instead obtain it
    //  from an interactive prompt, environment variable, or a secrets vault.
    CkFtp2W_putPassword(ftp,L"myPassword");

    success = CkFtp2W_Connect(ftp);
    if (success == FALSE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        return;
    }

    success = CkFtp2W_ChangeRemoteDir(ftp,L"public_html");
    if (success == FALSE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        return;
    }

    //  Returns -1 when the file is not found or the size cannot be obtained.  For files that may
    //  exceed 2 GB, use GetSizeStrByName (returns a decimal string).
    fileSize = CkFtp2W_GetSizeByName(ftp,L"report.pdf");
    if (fileSize < 0) {
        wprintf(L"File not found, or size unavailable.\n");
        CkFtp2W_Dispose(ftp);
        return;
    }

    wprintf(L"report.pdf is %d bytes\n",fileSize);

    success = CkFtp2W_Disconnect(ftp);
    if (success == FALSE) {
        wprintf(L"%s\n",CkFtp2W_lastErrorText(ftp));
        CkFtp2W_Dispose(ftp);
        return;
    }



    CkFtp2W_Dispose(ftp);

    }