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.

Roadmap

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 au.com.teched.io)

FileSystem
Abstract superclass to present a uniform programmatic view of local and FTP filesystems.
LocalFileSystem
Extends FileSystem, representing a file system accessible through normal OS filesystem calls.
FTPFileSystem
Extends FileSystem, representing a file system accessible through File Transfer Protocol.
FileSystem.FileDescription
Describes a file on a FileSystem.
FileSystem.CopyStatus
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 au.com.teched.wimp)

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

File Transfer Manager application classes (package au.com.teched.ftmanager)

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

Requirements

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.
SourceForge.net Logo