JaSFtp is a Java program which provides extremely powerful FTP functionality. While you can just log on to an FTP site and download a file or two with it–no one is stopping you–doing so ignores the bulk of the program’s functionality. This is not a tool for grabbing a few public files; it’s designed for mass uploading, downloading, and copying, with powerful and deep scripting features and options. While performing the simplest tasks (logging on to an FTP server, downloading a file, and so on) is fairly intuitive, truly getting the most out of this program will require extensive reading of the documentation.
The main utility of the program for business users is in the Tasks and Schedules. Tasks are collections of steps, such as “Log on to Server; copy all files older than 2 weeks; delete those files; then upload a new set of files from this directory”. Schedules, in turn, set Tasks up to be run. Most, if not all, commands and options available can use variables in place of hard-coded values, thus, you may have one Task which sets a user name to “CORP_USER” and another which simply has a variable for “User Name” instead of a fixed value. There is, however, no branching or looping in Tasks; they are sequential sequences of commands.
Schedules can be set to run at fixed intervals such as every hour, or only on Sundays, and so on. Scheduled tasks can be executed immediately, or suspended. By default, JaSFtp launches itself on startup, so it will faithfully execute your commands in the background.
Because JaSFtp is a Java program, it can be used in mixed-computing (PC, Mac, *nix) environments with limited difficulty. The downside, of course, is that the interface is a bit non-standard, a bit unattractive, and a bit ugly; this is the case with pretty much all Java apps.
If your FTP usage is limited to one or two quick uploads/downloads a month, or the like, this program probably isn’t for you. If you are a heavy FTP user, corporate or private, though, you might want to check it out. The price is high, but so is the utility and flexibility.