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
-
objectMarshalByRefObjectCopyDirectory
- 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
sourcePathstringThe path of source directory. Must exist!
destinationPathstringThe path of the target directory.
Properties
Name
A name describing the task in human-readable form.
public override string Name { get; }
Property Value
- string
Overwrite
Overwrite existing files and directories at the destination path. This will even replace read-only files!
public bool Overwrite { get; init; }
Property Value
- bool
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
- bool
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
sourceFileFileInfodestinationFileFileInfo
Exceptions
- IOException
A problem occurred while copying the file.
- UnauthorizedAccessException
Read access to the
sourceFileor write access to thedestinationFileis 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
directoryDirectoryInfoThe directory to handle.
HandleFile(FileInfo, FileInfo?)
Called once for every file below Source.
protected override void HandleFile(FileInfo file, FileInfo? hardlinkTarget = null)
Parameters
fileFileInfoThe file to handle.
hardlinkTargetFileInfoA previously handled file that is hardlinked to
file. May benull.