Class CopyDirectory
Copies the content of a directory to a new location preserving file timestamps, symlinks and hard links.
public class CopyDirectory : ReadDirectoryBase, ITask
- Inheritance
-
CopyDirectory
- Implements
- Derived
- Inherited Members
- Extension Methods
Constructors
CopyDirectory(string, string)
Copies the content of a directory to a new location preserving file timestamps, symlinks and hard links.
public CopyDirectory(string sourcePath, string destinationPath)
Parameters
sourcePath
stringThe path of source directory. Must exist!
destinationPath
stringThe path of the target directory.
Properties
Name
A name describing the task in human-readable form.
public override string Name { get; }
Property Value
Overwrite
Overwrite existing files and directories at the destination path. This will even replace read-only files!
public bool Overwrite { get; init; }
Property Value
UnitsByte
true
if UnitsProcessed and UnitsTotal are measured in bytes;
false
if they are measured in generic units.
protected override bool UnitsByte { get; }
Property Value
Methods
CopyFile(FileInfo, FileInfo)
Copies a single file from one location to another. Can be overridden to modify the copying behavior.
protected virtual void CopyFile(FileInfo sourceFile, FileInfo destinationFile)
Parameters
Exceptions
- IOException
A problem occurred while copying the file.
- UnauthorizedAccessException
Read access to the
sourceFile
or write access to thedestinationFile
is not permitted.
Execute()
The actual code to be executed.
protected override void Execute()
Remarks
State is automatically set to Started before calling this method, to Complete after a successful exit and to an appropriate error state in case on an exception. You can set additional TaskStates during execution.
Exceptions
- OperationCanceledException
The operation was canceled.
- IOException
The task ended with IOError.
- WebException
The task ended with WebError.
HandleDirectory(DirectoryInfo)
Called once for every sub-directory below Source.
protected override void HandleDirectory(DirectoryInfo directory)
Parameters
directory
DirectoryInfoThe directory to handle.
HandleFile(FileInfo, FileInfo?)
Called once for every file below Source.
protected override void HandleFile(FileInfo file, FileInfo? hardlinkTarget = null)