### IFileSystemMover

  Moves a file system entity. Recursively moves all of the entity's children if it is a directory.

#### Subclassing

  Developers who want to perform moves with progress reports, name conflict resolution, or customized error handling must create a subclass and override one or more of the callback member functions declared in IFileOperation.

### IFileSystemMover - Member Functions and Data by Group

### Constructors & Destructor

Use the functions in this group to construct and destroy file system mover objects.

~IFileSystemMover

      public:
      virtual ~IFileSystemMover()

  Destroys the file system mover object.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

IFileSystemMover

      public:
      IFileSystemMover( EFailureAction action = kStop,
                        unsigned int tellMeTimes = 0 )

  Constructs a file system mover object.
  Use this constructor to create a file system mover object that specifies error handling and the number of times that reportProgress should be called during the operation.

  action
    What to do if the operation encounters an error. See IFileSystemCopier::EFailureAction for details.
  tellMeTimes
    The number of times that reportProgress should be called during the copy operation.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Callback Functions

This group includes callback functions that are overridden by derived classes to handle notifications from the base class.

doOneEntity

      protected:
      virtual IFileSystemEntity
        doOneEntity( const IFileSystemEntity& entity,
                     IDirectory& destination,
                     const IFileName& newName )

  This is called for each entity to be moved.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

postProcess

      protected:
      virtual void
        postProcess( IFileSystemEntity& source,
                     IFileSystemEntity& result )

  This is called after an entity has been moved, to provide post processing.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### Moving a File System Entity

Use this function to implement the mover operations.

move
  Moves an entity to a new parent directory.

      public:
      IFileSystemEntity
        move( IFileSystemEntity& source,
              IDirectory& destination,
              const IFileName& newName = "" )

  This function moves an entity to a new parent directory. If the entity is a directory, all of its children are moved as well. The error handling and progress reporting behavior of the move depends on the arguments that were passed to this object's constructor.

  source
    The entity to be moved.
  destination
    The directory to which this entity should be moved.
  newName
    An optional new name for the entity after it is moved. If no new name is provided, the current name is used.

Supported Platforms

  Windows | OS/2 | AIX
  Yes | Yes | Yes

### IFileSystemMover - Inherited Member Functions and Data

#### Inherited Public Functions

  IFileOperation

  -     virtual ~IFileOperation()

  -     EFailureAction failureAction() const

  -     virtual bool
          handleFailure( const IException& reason,
                         const IFileSystemEntity& current )

  -     virtual bool
          renameNeeded( IFileName& modifyThisName,
                        const IFileSystemEntity& currentEntity )

  -     unsigned int reportFrequency() const

  -     virtual bool
          reportProgress( double fractionDone,
                          const IFileSystemEntity& currentEntity )

  -     void setFailureAction(EFailureAction actionOnFailure)

#### Inherited Public Data

  - None

#### Inherited Protected Functions

  IFileOperation

  -     virtual IDirectory
          doOneDirectory( const IDirectory& dir,
                          IDirectory& dest,
                          const IFileName& newName )

  -     virtual IFileSystemEntity
          doOneEntity( const IFileSystemEntity& entity,
                       IDirectory& target,
                       const IFileName& newName ) = 0

  -     IFileSystemEntity
          execute( const IFileSystemEntity& entity,
                   IDirectory& target,
                   const IFileName& newName )

  -     IFileOperation()

  -     IFileOperation( EFailureAction action,
                        unsigned int tellMeTimes )

#### Inherited Protected Data

  - None