NanoByte.Common  2.10.5
NanoByte.Common.Storage.CopyDirectory Class Reference

Copies the content of a directory to a new location preserving file timestamps, symlinks and hard links. More...

Inheritance diagram for NanoByte.Common.Storage.CopyDirectory:
NanoByte.Common.Storage.ReadDirectoryBase NanoByte.Common.Tasks.TaskBase NanoByte.Common.Tasks.ITask NanoByte.Common.Storage.MoveDirectory

Public Member Functions

 CopyDirectory ([Localizable(false)] string sourcePath, [Localizable(false)] string destinationPath)
 Creates a new directory copy task. More...
 
- Public Member Functions inherited from NanoByte.Common.Tasks.TaskBase
void Run (CancellationToken cancellationToken=default, ICredentialProvider? credentialProvider=null, IProgress< TaskSnapshot >? progress=null)
 Runs the task and blocks until it is complete.
 

Protected Member Functions

override void Execute ()
 The actual code to be executed.
 
override void HandleDirectory (DirectoryInfo directory)
 Called once for every sub-directory below Source.
 
override void HandleFile (FileInfo file, FileInfo? hardlinkTarget=null)
 Called once for every file below Source.
 
virtual void CopyFile (FileInfo sourceFile, FileInfo destinationFile)
 Copies a single file from one location to another. Can be overridden to modify the copying behavior. More...
 
- Protected Member Functions inherited from NanoByte.Common.Storage.ReadDirectoryBase
 ReadDirectoryBase ([Localizable(false)] string path)
 Creates a new directory read task. More...
 
override void Execute ()
 The actual code to be executed.
 

Properties

override string Name [get]
 
override bool UnitsByte [get]
 
bool Overwrite [get]
 Overwrite existing files and directories at the destination path. This will even replace read-only files! More...
 
- Properties inherited from NanoByte.Common.Storage.ReadDirectoryBase
override bool UnitsByte [get]
 
bool FollowSymlinks [get]
 Controls whether to follow symlinks. More...
 
- Properties inherited from NanoByte.Common.Tasks.TaskBase
abstract string Name [get]
 
object? Tag [get, set]
 
virtual bool CanCancel [get]
 
TaskState State [get, protected set]
 The current State of the task. More...
 
abstract bool UnitsByte [get]
 true if UnitsProcessed and UnitsTotal are measured in bytes; false if they are measured in generic units. More...
 
long UnitsProcessed [get, set]
 The number of units that have been processed so far. More...
 
long UnitsTotal [get, set]
 The total number of units that are to be processed; -1 for unknown. More...
 
- Properties inherited from NanoByte.Common.Tasks.ITask
string Name [get]
 A name describing the task in human-readable form. More...
 
object? Tag [get, set]
 An object used to associate the task with a specific process; can be null. More...
 
bool CanCancel [get]
 Indicates whether this task can be canceled once it has been started. More...
 

Additional Inherited Members

- Protected Attributes inherited from NanoByte.Common.Storage.ReadDirectoryBase
readonly DirectoryInfo Source
 The directory to read. More...
 
- Protected Attributes inherited from NanoByte.Common.Tasks.TaskBase
CancellationToken CancellationToken
 Signaled when the user wishes to cancel the task execution. More...
 
ICredentialProviderCredentialProvider
 Used to retrieve credentials for specific Uris on demand; can be null. More...
 

Detailed Description

Copies the content of a directory to a new location preserving file timestamps, symlinks and hard links.

Constructor & Destructor Documentation

◆ CopyDirectory()

NanoByte.Common.Storage.CopyDirectory.CopyDirectory ( [Localizable(false)] string  sourcePath,
[Localizable(false)] string  destinationPath 
)
inline

Creates a new directory copy task.

Parameters
sourcePathThe path of source directory. Must exist!
destinationPathThe path of the target directory.

Member Function Documentation

◆ CopyFile()

virtual void NanoByte.Common.Storage.CopyDirectory.CopyFile ( FileInfo  sourceFile,
FileInfo  destinationFile 
)
inlineprotectedvirtual

Copies a single file from one location to another. Can be overridden to modify the copying behavior.

Exceptions
IOExceptionA problem occurred while copying the file.
UnauthorizedAccessExceptionRead access to the sourceFile or write access to the destinationFile is not permitted.

Reimplemented in NanoByte.Common.Storage.MoveDirectory.

Property Documentation

◆ Overwrite

bool NanoByte.Common.Storage.CopyDirectory.Overwrite
get

Overwrite existing files and directories at the destination path. This will even replace read-only files!


The documentation for this class was generated from the following file: