Re: Two important implementations
1) Just as FileExists function exists, I need DirectoryExists.
Session.FileExists actually checks for directories too. If you want to make sure that it's a directory, use Session.GetFileInfo and test RemoteFileInfo.IsDirectory.
https://winscp.net/eng/docs/library_session_getfileinfo
2) An event that shows the percentage of the file in progress (uploading or downloading) would be useful.
See https://winscp.net/eng/docs/library_session_filetransferprogress