When using the TIdFTP.SetModTime function, why do I get a ""no such file or directory" but the file exists.
The TIdFTP.SetModTime uses a FTP command called MDTM. That command on
most servers means to request a file's last modified date. This is what
the specification says. Unfortunately, some
servers and some clients also use (I should say abuse), that command to set the
last modified file date. Indy's FTP client and server do support this
abuse of the MDTM for compatibility reasons. If the server does support a
"MFMT" command, Indy will use that instead of
MDTM but most servers do not support that command.
The syntax for getting a file date is:
and to set the file date, the syntax usually is something like:
MDTM filedate MyFileName
If a server doesn't support setting the file date with MDTM, the server may
interpret the filedate as the start of the filename. Since a file with
such a name probably does not exist, you get that error about a file not
So all I can say is that server does NOT support setting the file date with
the MDTM command. The confusion is the consequences of someone
else's poor design.
The ultimate solution to this problem is if more servers support the commands
from the "draft-somers-ftp-mfxx-01.txt" IETF
Internet Draft. That draft also provides a solution to another problem I
see with FTP but that's another blog entry I may make someday.