If you want ot get directory listing to get the file size, you are on the 
wrong track. FTP has a sie command to get the size of a file. Use it.

Now if you really want to dir list for a file only, most FTP server use the 
host file name as filter.

--
[EMAIL PROTECTED]
The author of the freeware multi-tier middleware MidWare
The author of the freeware Internet Component Suite (ICS)
http://www.overbyte.be

----- Original Message ----- 
From: "New Era" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Sunday, September 23, 2007 8:57 AM
Subject: Re: [twsocket] Ftp-file corruption check


> thanks for your kind reply,
>
> but if I go with the stable version of the ICS which does not have XCRC 
> command support,  I used the following code to achieve my aim
> (recommended by FPiette),
>
> 1- upload file using ftpPutAsync()
> 2- use ftpDirAsync() and check the size of the file of interest if it is 
> same on the local machine and on the remote machine.
>
> I used the following pseudo code:
>
> procedure ftpRequestDone();
> begin
>
>        case RqType of
>        ....
>                ftpTypeSetAsync(): Begin
>                      ftpCli.HostFileName:= '2.bin';
>                      ftpCli.LocalFileName:= 'c:\2.bin';
>                      ftpCli.HostDirName:= '/';
>                      .....
>                      ftpCli.PutAsync();
>                End;
>
>                ftpPutAsync: Begin
>                      ftpCli.HostFileName:= '2.bin';
>                      ftpCli.LocalFileName:= '';
>                      ftpCli.HostDirName:= '/';
>                      ftpCli.LocalStream:= TMemoryStream.Create();
>                      ftpCli.DirAsync();
>                End;
>
>                ftpDirAsync: Begin
>                      ftpCli.LocalStream.Position:= 0;
>                      SetLength(tempStr, ftpCli.LocalStream.Size);
>                      {Get the directory response of the server into 
> tempStr string.}
>                      CopyMemory(Pointer(tempStr)^, 
> TMemoryStream(ftpCli.LocalStream).Memory, ftpCli.LocalStream.Size);
>
>                      if(Pos(FileSizeInString, tempStr)>0) then 
> ShowMessage('Uploaded Correctly')
>                      else showMessage('upload failure');
>                End;
>        ...
>
>
>        end;
>    ....
> end;
>
> but the problem with this code is; the server returns the whole directory 
> content (losts of file) but I only want to get the directory
> listing for the specified file, to do that I used ftpCli.HostFileName:= 
> '2.bin'; before calling ftpcli.DirAsync() but it did not work.
> Is there anyway to get the directory listing for the only specified file?
>
> best regards,
> Thanks
>
>
> Arno Garrels <[EMAIL PROTECTED]> wrote: New Era wrote:
>> How to check if a file is either uploaded correctly or not, I know
>> that ftpCli supports MD5 command, but at the outside world there were
>> no commercial ftp hosting services that support MD5 command, I only
>> found one ftp hosting which supports XCRC and this is command as far
>> as I know, is not supported by ftpCli. (I am trying to build an ftp
>> client that is to be used to upload files to external ftp host.)
>
> Aug 06, 2006 V2.107 Angus [SNIP]
>             added XCRC command to get CRC32 for file (for servers without 
> MD5)
>
> So get latest ICS-Beta, it's in both V5 and V6
>
> --
> Arno Garrels [TeamICS]
> http://www.overbyte.be/eng/overbyte/teamics.html
>
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be
>
>
>
> ---------------------------------
> Yahoo! Answers - Get better answers from someone who knows. Tryit now.
> -- 
> To unsubscribe or change your settings for TWSocket mailing list
> please goto http://www.elists.org/mailman/listinfo/twsocket
> Visit our website at http://www.overbyte.be 
-- 
To unsubscribe or change your settings for TWSocket mailing list
please goto http://www.elists.org/mailman/listinfo/twsocket
Visit our website at http://www.overbyte.be

Reply via email to