private bool CopyAll(VolumeSnapshotDirectory directory)
        {
            directory.Revision = directory.Snapshot.Revision;
            mArchive.CreateDirectory(directory.Snapshot.Revision, directory.RelativePath);

            if (!mOperation.CanContinue)
            {
                return(false);
            }

            foreach (VolumeSnapshotFile fileEntry in directory.Files)
            {
                CopyFileToBackup(fileEntry);

                if (!mOperation.CanContinue)
                {
                    return(false);
                }
            }

            foreach (VolumeSnapshotDirectory dirEntry in directory.Directories)
            {
                if (!CopyAll(dirEntry) || !mOperation.CanContinue)
                {
                    return(false);
                }
            }

            return(true);
        }