Skip to content
Robert Brenckman edited this page Nov 15, 2024 · 4 revisions

Purpose:

This object can be used to report live results of a robocopy operation to a user interface. Note that the final results may differ depending on the logging options used. (If skipped files are not written to the log, the estimator will be unaware of them and the estimator will have a different value than the final tally reported by robocopy).

Typical Usage

  • Methods would be used for custom implementations, see RoboMover

  • UI Usage would be used based on the IProgressEstimator interface, see IProgressEstimator

Implemented Interfaces:

Properties:

Property Name Property Type Description
Name string Custom Name for the object to refer to it by - Has no effect on functionality.
DirectoriesStatistic IStatistic Estimate of current number of files processed while the job is still running.
FilesStatistic IStatistic Estimate of current number of files processed while the job is still running.
BytesStatistic IStatistic Estimate of current number of bytes processed while the job is still running.

Events:

Name Event Object Delegate Description
ValuesUpdated IProgressEstimatorUpdateEventArgs UIUpdateEventHandler This event is fired when the values of the progress estimator are updated. Default implementations will only raise the event every 150ms in order to avoid overloading the UI.

Methods:

The methods on this object are primarily for use with implementations of IRoboCopy so they can report their activity, not for consumers to use when interacting with a UI.

Name Description
GetExitCode Calculate a 'RoboCopyExitCodes' enum based off the currently reported statistics
GetResults Transform the progress estimator into a 'RoboCopyResults' object. Calls FinalizeResults()
FinalizeResults Tabulate the final results, killing the worker task that is used for UI updating, and performs one last update to the UI via the ValuesUpdated event.
AddDir Adds a ProcessedFileInfo object that represents a directory to the statistics.
AddDirCopied Adds a ProcessedFileInfo object that represents a COPIED directory to the statistics.
AddDirSkipped Adds a ProcessedFileInfo object that represents a SKIPPED directory to the statistics.
ProcessPreviousFile Performs final processing of the previously added file if needed.
AddFile Adds a ProcessedFileInfo object that represents a file to the statistics.
SetCopyOpStarted Sets flag indicating that the last file added via AddFile has begun its copy operation. This flag is proccessed when a subsequent file is added to mark the previous one as skipped or completed.
AddFileCopied Adds a file to the statistics and marks it as COPIED
AddFileFailed Adds a file to the statistics and marks it as FAILED
AddFileSkipped Adds a file to the statistics and marks it as SKIPPED
AddFileMisMatch Adds a file to the statistics and marks it as MISMATCH
AddFileExtra Adds a file to the statistics and marks it as EXTRA