Copying Folders

You may copy a folder and its contents by selecting it in one of the browser panes and clicking "◀ Get" or "► Send".

When copying a folder, the folder is created at the destination if needed and the contents and all sub-folders are recursively copied into it.

Streaming versus One-at-a-Time

Folders can be copied using either One-at-a-Time or Streaming, as determined by the "Streaming Folders" checkbox in the Setup pane of the Options Options window.

Streaming mode transfers the entire contents of a folder as a single real-time data stream.  One-at-a-time mode first scans the source folder, checks for local conflicts, then copies each file and subfolder individually.

Streaming mode is faster for many small files, but may be less reliable than One-at-a-Time mode.

Streaming is faster when there are a very large number of files or the average file size is small, because it does not take the time to scan the source and does not wait for each file to be written to disk before sending the next one.  Any files at the destination with conflicting names may be silently overwritten.  If the network or server is disrupted during a Streaming session, auto-retry will attempt to restart from the beginning.  If any individual file cannot be read or written, the entire transfer may be aborted.  Unix symbolic links will be copied to unix systems and ignored by Windows systems.  Compression is not available with Streaming.  Hidden or invisible files are included in the transfer and an attempt will be made to preserve this state.  Streaming Folders requires only a limited amount of memory, allowing up to 2 billion files to be transferred per session.

For paths which are very fast or high latency, Streaming performance may be affected by the buffer size.

One-at-a-time will be almost as fast as Streaming when the average file size is large enough to take several seconds each, and the number of files is only a few hundred or less.  If the network or server is disrupted during a one-at-a-time session, auto-retry will attempt to resume from the point of disruption.  If an individual file cannot be transferred or retried, the remaining files may still be transferred.  Unix symbolic links to regular files will be followed and the target file copied.  Symbolic links to folders and broken links will be skipped.  Compression is available with one-at-a-time directory transfer.  Invisible or hidden files will be copied only if the Show Hidden setting is enabled.  The number of files which can be transferred with one-at-a-time is limited by available client memory.

For server-side object handlers which support folder transfer, one-at-a-time is used regardless of the Options setting.

Server Behavior

When uploading one-at-a-time, conflicts with remote files will only be noted when the NoOverwrite setting has been enabled.  Otherwise, uploads will silently replace conflicting files.

Streaming transfers are considered a single transaction and are logged as such by the server.  One-at-a-time transfers are marked as "bulk".  The server will filter out logging of individual bulk transfers, unless LogFilter has been lowered from its default setting.  Remote directory scans and directory creations will be logged as normal transactions during one-at-a-time.  If NoOverwrite is set, a streaming folder upload will fail if the top-level folder exists, regardless of its contents.

Feature Summary

Below is a summary of the behavioral differences between Streaming and One-at-a-Time directory transfer:

Pre-scan SourceNoYes
Conflict DetectionNoYes
Checkpoint RestartNoYes
Continue After InterruptNoYes
Continue After File ErrorNoYes
Compression AvailableNoYes
Object HandlersNoYes
Client Memory UseLowVariable
Transfer SpeedFastVariable
Unix Symlink to FileCopiedFollowed
Unix Symlink to FolderCopiedIgnored
Hidden/Invisible ItemsCopiedOptional
UTF-8 File NamesYesYes
Modified DateYesYes
Creation DateYesNo
Unix UID/GIDYesYes
Log Each FileNoOptional

These behaviors may change in future versions.