Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(PowerBuilder) Delete Local Files that Do Not Exist on the FTP ServerDemonstrates how to get a list of local files in a directory tree that do not exist on the FTP server.
integer li_rc oleobject loo_Ftp integer li_Success integer li_Mode integer li_DescendTree integer li_PreviewOnly oleobject loo_Sa oleobject loo_Fac integer li_NumFiles integer i string ls_LocalFilePath // This example requires the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. loo_Ftp = create oleobject // Use "Chilkat_9_5_0.Ftp2" for versions of Chilkat < 10.0.0 li_rc = loo_Ftp.ConnectToNewObject("Chilkat.Ftp2") if li_rc < 0 then destroy loo_Ftp MessageBox("Error","Connecting to COM object failed") return end if loo_Ftp.Hostname = "ftp.example.com" loo_Ftp.Username = "login" loo_Ftp.Password = "password" loo_Ftp.KeepSessionLog = 1 // Connect and login to the FTP server. li_Success = loo_Ftp.Connect() if li_Success <> 1 then Write-Debug loo_Ftp.LastErrorText destroy loo_Ftp return end if // Set the current remote directory to the root of // the remote tree to be compared. li_Success = loo_Ftp.ChangeRemoteDir("abc123") if li_Success <> 1 then Write-Debug loo_Ftp.LastErrorText destroy loo_Ftp return end if // Recursively descend the local directory tree // and find the files that exist locally but not remotely. // These are the files what would be uploaded via // the SyncRemoteTree method call with mode = 1. // (Mode 1 would upload all files that do not exist on the FTP server.) // The actual uploading is avoided by setting the preview-only argument to 1. li_Mode = 1 li_DescendTree = 1 li_PreviewOnly = 1 li_Success = loo_Ftp.SyncRemoteTree2("/temp/abc123",li_Mode,li_DescendTree,li_PreviewOnly) if li_Success <> 1 then Write-Debug loo_Ftp.LastErrorText destroy loo_Ftp return end if // The files what would've been uploaded are now available in the SyncPreview property, // which contains a list of local file paths, one per line. // A program can iterate over them like this: loo_Sa = create oleobject // Use "Chilkat_9_5_0.StringArray" for versions of Chilkat < 10.0.0 li_rc = loo_Sa.ConnectToNewObject("Chilkat.StringArray") loo_Sa.LoadFromText(loo_Ftp.SyncPreview) loo_Fac = create oleobject // Use "Chilkat_9_5_0.FileAccess" for versions of Chilkat < 10.0.0 li_rc = loo_Fac.ConnectToNewObject("Chilkat.FileAccess") li_NumFiles = loo_Sa.Count i = 0 do while (i < li_NumFiles) ls_LocalFilePath = loo_Sa.GetString(i) Write-Debug ls_LocalFilePath // An application can delete the file using Chilkat's file access object, // or it can choose to use the native file API available in the programming language: li_Success = loo_Fac.FileDelete(ls_LocalFilePath) if li_Success <> 1 then Write-Debug "Failed to delete: " + ls_LocalFilePath end if i = i + 1 loop li_Success = loo_Ftp.Disconnect() destroy loo_Ftp destroy loo_Sa destroy loo_Fac |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.