There is no direct support for checking of file existence in the FTP protocol. So we "simulate" the method with a number of detections in Rebex.Net.Ftp client. Your FTP server does not support the MLST command so we have to rely on SIZE command to detect whether the file exists (if the server returns a size, then we can suppose that this is a file).
However, your server does not seem to like a full path provided to the SIZE command. So although the file exists at the server, it responds badly if we provide the full path to the SIZE command.
2015-07-01 12:00:17.506 INFO Ftp(2)[1] Command: SIZE /file.txt
2015-07-01 12:00:17.685 INFO Ftp(2)[1] Response: 550 /file.txt: not a plain file.
Whereas it responds correctly when a relative path is provided like this:
2015-07-01 12:03:16.367 INFO Ftp(2)[1] Command: SIZE file.txt
2015-07-01 12:03:16.551 INFO Ftp(2)[1] Response: 213 1024
This is a bug of the server. We suggest you to report it to the server vendor and in the meantime the simple workaround for you is to change into the directory and then only check for file existence using the relative path (which works correctly with the problematic server). So in your case use:
ftp.ChangeDirectory("/");
bool fileExists = ftp.FileExists("!_Info_on_files_found_here.txt");
Console.WriteLine(fileExists);
instead of:
ftp.FileExists("/!_Info_on_files_found_here.txt");