File Transfer Manager

Code specification

This application is intended to be used initially as a graphical application, allowing file operations on the local filesystems and remote FTP servers. The API is designed such that the elements used by the graphical application to interact with filesystems can also be included in other applications. The aim is to represent local and remote filesystems through a common interface.

One of the distinguishing features of the underlying code is that two FTPFileSystems can transfer files directly between the two servers. This is usually a major saving in bandwidth, as the transfer needs only be accomplished once - rather than transferring first to the client machine and then onto the second server - and is a part of the FTP protocol.

The application is written in Java for two principal reasons:

  1. Portability of code - Java is available on all major operating systems.
  2. Object orientation - the design of the Java language allows for an easily-developed and -maintained API, with proper abstraction and division of work into logical units.


Version 0.1
Basic API and graphical interface
Version 0.2
Command-line interface
Version 0.3
Automated file transfers - initiated upon various criteria being met, including presence of a file, time of day.

Class Enumeration

File system classes (package

Abstract superclass to present a uniform programmatic view of local and FTP filesystems.
Extends FileSystem, representing a file system accessible through normal OS filesystem calls.
Extends FileSystem, representing a file system accessible through File Transfer Protocol.
Describes a file on a FileSystem.
As copies can progress in parallel, these objects are used to track each individual transfer. The code which initiates transfers can kick off a number of transfers and either poll each of these objects in turn to update the status of the transfer, or register a listener which the CopyStatus objects will call whenever there is a change in the status of the transfer.

Graphical file system classes (package

Contains a NavigationPane, PathTreePane and FilePane. Refers to a FileSystem.
Buttons to move up and jump to file system positions, select all files, toggle the current selection and delete files.
Collapsible - shows a tree view of the file system
Collection of FileIcons within a directory.
Representation of a file or directory.

File Transfer Manager application classes (package

Main window, containing the ControlPane at the top and the FileSystemPanes side-by-side.
Options. Buttons are: New local view, New remote view, Synchronise..., Delete..., Compare...


The code is to be written to run on the Java 2 platform, specifically Java 1.2 and above. Initially, a Window-Icon-Menu-Pointer (wimp) environment will be required. This requirement will cease upon version 0.2 of the code. Logo