Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
Directory Existence CheckHow to test if a directory exists on an FTP server. A good way to check to see if a directory already exists is to try to "cd" to that remote directory by calling ChangeRemoteDir. If it succeeds, then the directory exists. If not, then it does not exist. An alternative method is to set the ListPattern = "*" and then iterate over the files/directories, looking for the directory.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATFTP2Lib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var ftp: TChilkatFtp2; success: Integer; dirExists: Integer; i: Integer; n: Integer; foundDir: Integer; isDir: Integer; fname: String; begin ftp := TChilkatFtp2.Create(Self); // Any string unlocks the component for the 1st 30-days. success := ftp.UnlockComponent('Anything for 30-day trial'); if (success <> 1) then begin ShowMessage(ftp.LastErrorText); end; ftp.Hostname := 'ftp.chilkatsoft.com'; ftp.Username := '***'; ftp.Password := '***'; // Connect and login to the FTP server. success := ftp.Connect(); if (success <> 1) then begin ShowMessage(ftp.LastErrorText); end; // Does the "temp" directory exist? dirExists := ftp.ChangeRemoteDir('/temp'); if (dirExists = 1) then begin ShowMessage('Yes, the temp directory exists.'); // Yes, it exists. Restore the current remote dir: success := ftp.ChangeRemoteDir('..'); if (success <> 1) then begin ShowMessage(ftp.LastErrorText); end; end; // Alternatively, you may set the ListPattern = "*" and // look for the directory: ftp.ListPattern := '*'; n := ftp.NumFilesAndDirs; if (n < 0) then begin // Failed to get directory listing based on ListPattern ShowMessage(ftp.LastErrorText); end; foundDir := 0; if (n > 0) then begin for i := 0 to n - 1 do begin isDir := ftp.GetIsDirectory(i); if (isDir = 1) then begin fname := ftp.GetFilename(i); if (fname = 'temp') then begin ShowMessage('Found temp directory!'); foundDir := 1; break; end; end; end; end; if (foundDir <> 1) then begin ShowMessage('temp directory not found!'); end; ftp.Disconnect(); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.