C
C
FTP Iterate over Files in Directory Matching ListPattern
See more RSA Examples
Uses the ListPattern property to iterate over the files in a directory matching the pattern.Chilkat C Downloads
#include <C_CkFtp2.h>
#include <C_CkStringBuilder.h>
void ChilkatSample(void)
{
BOOL success;
HCkFtp2 ftp;
int n;
int i;
const char *filename;
HCkStringBuilder sbLocalPath;
success = FALSE;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
ftp = CkFtp2_Create();
CkFtp2_putHostname(ftp,"ftp.example.com");
CkFtp2_putUsername(ftp,"my_login");
CkFtp2_putPassword(ftp,"my_password");
CkFtp2_putPort(ftp,21);
CkFtp2_putAuthTls(ftp,TRUE);
success = CkFtp2_Connect(ftp);
if (success != TRUE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
// Change to the "images" sub-directory located under our FTP account's home directory.
success = CkFtp2_ChangeRemoteDir(ftp,"images");
if (success != TRUE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
CkFtp2_putListPattern(ftp,"*.png");
// Fetch the current remote directory contents by calling GetDirCount
n = CkFtp2_GetDirCount(ftp);
if (n < 0) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
return;
}
i = 0;
sbLocalPath = CkStringBuilder_Create();
while (i < n) {
filename = CkFtp2_getFilename(ftp,i);
printf("%s\n",filename);
// Download this file.
CkStringBuilder_SetString(sbLocalPath,"qa_output/");
CkStringBuilder_Append(sbLocalPath,filename);
success = CkFtp2_GetFile(ftp,filename,CkStringBuilder_getAsString(sbLocalPath));
if (success != TRUE) {
printf("%s\n",CkFtp2_lastErrorText(ftp));
CkFtp2_Dispose(ftp);
CkStringBuilder_Dispose(sbLocalPath);
return;
}
i = i + 1;
}
CkFtp2_Dispose(ftp);
CkStringBuilder_Dispose(sbLocalPath);
}