Article View: borland.public.cppbuilder.internet.socket
Article #5519Re: Indy ftp server with c++ HELP PLEASE
From: Brian
Date: Tue, 17 Aug 2004 22:54
Date: Tue, 17 Aug 2004 22:54
108 lines
4023 bytes
4023 bytes
Thank you gambit, here are my events so far:
void __fastcall TfrmMain::IdFTPServer1RetrieveFile(
TIdFTPServerThread *ASender, const AnsiString AFileName,
TStream *&VStream)
{
VStream = NULL;
try
{
VStream = new TFileStream(AFileName, fmOpenRead |
fmShareDenyWrite);
}
catch(Exception&)
{
// an error occured opening the file for reading
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::IdFTPServer1StoreFile(
TIdFTPServerThread *ASender, const AnsiString AFileName,
bool AAppend, TStream *&VStream)
{
VStream = NULL;
WORD mode = fmCreate;
if(AAppend)
mode = (fmOpenReadWrite | fmShareDenyWrite);
try
{
VStream = new TFileStream(AFileName, mode);
}
catch(Exception&)
{
// an error occured opening the file for writing
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::IdFTPServer1AfterUserLogin(
TIdFTPServerThread *ASender)
{
// ASender is an autocreated thread for us
// Instance of struct for settings
TFtpClient* AClient;
AClient = new TFtpClient;
ASender->HomeDir = '/';
ASender->CurrentDir = '/';
// Our struct for various settings
AClient->Thread = ASender;
AClient->IP = ASender->Connection->Socket->Binding->PeerIP.c_str() ;
AClient->RootPath = "c:\\" ; // Need function to return
// Pass this struct to our ASender thread
ASender->Data = AClient;
}
//---------------------------------------------------------------------------
void __fastcall TfrmMain::IdFTPServer1ListDirectory(
TIdFTPServerThread *ASender, const AnsiString APath,
TIdFTPListItems *ADirectoryListing)
{
TSearchRec sr;
if( FindFirst(APath + "*.*", faAnyFile, sr) == 0 )
{
do
{
//if( sr.Name == "." || sr.Name = ".." )
// continue;
TIdFTPListItem *Item = ADirectoryListing->Add();
if( sr.Attr & faDirectory )
Item->ItemType = ditDirectory;
else
Item->ItemType = ditFile;
Item->FileName = sr.Name;
Item->Size = sr.Size;
Item->ModifiedDate = FileDateToDateTime(sr.Time);
}
while( FindNext(sr) == 0 );
FindClose(sr);
}
}
"Remy Lebeau \(TeamB\)" <gambit47.no.spam@no.spam.yahoo.com> wrote:
>
>"Brian" <brianb@p3mc.net> wrote in message
>news:412281ad@newsgroups.borland.com...
>
>> I tried the code in the link. It gets an empty list when i login.
>
>Please show your listing code as well.
>
>
>Gambit
>
>
Technical Details
Message-ID:
<41228c9c$1@newsgroups.borland.com>Path:
arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mailReferences:
<4122792e$1@newsgroups.borland.com> <41227d66$1@newsgroups.borland.com> <412281ad@newsgroups.borland.com> <41228904$1@newsgroups.borland.com>Show Full Headers
Complete Article Headers
X-Google-Thread: 11508e,da1fa7af1cf4859f X-Google-Attributes: gid11508e,public X-Google-Language: ENGLISH,ASCII-7-bit From: "Brian" <brianb@p3mc.net> Sender: "Brian" <brianb@p3mc.net> Reply-To: "Brian" <brianb@p3mc.net> Subject: Re: Indy ftp server with c++ HELP PLEASE Newsgroups: borland.public.cppbuilder.internet.socket X-User-Info: 202.139.43.133 X-Forwarded-For: 144.55.44.145, 144.55.32.32, 144.55.9.4 References: <4122792e$1@newsgroups.borland.com> <41227d66$1@newsgroups.borland.com> <412281ad@newsgroups.borland.com> <41228904$1@newsgroups.borland.com> NNTP-Posting-Host: 207.105.83.66 Message-ID: <41228c9c$1@newsgroups.borland.com> Date: 17 Aug 2004 15:54:20 -0700 X-Trace: newsgroups.borland.com 1092783260 207.105.83.66 (17 Aug 2004 15:54:20 -0700) Lines: 109 Path: arc1-ca.pugleaf.net!g2news1.google.com!news2.google.com!proxad.net!fr.ip.ndsoftware.net!newsfeed00.sul.t-online.de!newsfeed01.sul.t-online.de!t-online.de!newsgroups.borland.com!not-for-mail