Sample code for 30+ languages & platforms
DataFlex

SFTP Fsync -- Flush an Open File on the Server

See more SFTP Examples

Demonstrates how to flush the contents of an open file on the server. This example only works for servers that implement the fsync@openssh.com extension.

Note: This example requires Chilkat v9.5.0.71 or later.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSftp
    String sHandle
    String sTemp1
    Boolean bTemp1

    Move False To iSuccess

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

    Get Create (RefClass(cComChilkatSFtp)) To hoSftp
    If (Not(IsComObjectCreated(hoSftp))) Begin
        Send CreateComObject of hoSftp
    End

    // Pass a domain or IP address..
    Get ComConnect Of hoSftp "my-sftp-server.com" 22 To iSuccess
    If (iSuccess = True) Begin
        Get ComAuthenticatePw Of hoSftp "mySFtpLogin" "mySFtpPassword" To iSuccess
    End

    If (iSuccess = True) Begin
        Get ComInitializeSftp Of hoSftp To iSuccess
    End

    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Open a file on the server for writing.
    Get ComOpenFile Of hoSftp "myTest.txt" "writeOnly" "createTruncate" To sHandle
    Get ComLastMethodSuccess Of hoSftp To bTemp1
    If (bTemp1 <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Write some text to the file:
    Get ComWriteFileText Of hoSftp sHandle "ansi" "abcdefghijklmnopqrstuvwxyz" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Make sure the server flushes what we wrote to the disk..
    // (this is requires a server that implements the fsync@openssh.com SFTP protocol extension)
    Get ComFsync Of hoSftp sHandle To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // ....
    // ....

    Get ComWriteFileText Of hoSftp sHandle "ansi" "ABCDEFGHIJKLMNOPQRSTUVWXYZ" To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Close the file.
    Get ComCloseHandle Of hoSftp sHandle To iSuccess
    If (iSuccess <> True) Begin
        Get ComLastErrorText Of hoSftp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "Success."


End_Procedure