Reputation: 13
I need upload directory and subdirectories on server. I think i need to call method IdFTP->Put(...);
But I dont know how to do it. Help me, please!
Upvotes: 0
Views: 1304
Reputation: 86
void PutDir(TIdFTP* AIdFTP, const String& AFrom)
{
TSearchRec SR;
if (FindFirst(AFrom+"\\*.*", faAnyFile, SR)== 0)
{
do
{
if(SR.Name!= "." && SR.Name!= "..")
{
if (SR.Attr & faDirectory)
{
AIdFTP->MakeDir(SR.Name);
AIdFTP->ChangeDir(SR.Name);
PutDir(AIdFTP,AFrom+"\\"+SR.Name);
AIdFTP->ChangeDirUp();
}
else
{
AIdFTP->Put(AFrom+"\\"+SR.Name,SR.Name);
}
}
}
while (FindNext(SR)== 0);
FindClose(SR);
}
}
Upvotes: 2
Reputation: 597051
TIdFTP::Put()
uploads a single file. TIdFTP
does not natively support uploading folders, so you will have to implement it manually:
use TIdFTP::ChangeDir()
to go to the starting parent folder.
use TIdFTP::Put()
to upload each file into that folder.
use TIdFTP.MakeDir()
to create each subfolder in that folder.
recursively repeat #1 for each subfolder that you created in #3.
Upvotes: 4