예제 #1
0
        private void DeleteFolderOrFile(string relativefilePathOrSourceFolderPath, bool isFolder)
        {
            var remotePath = Path.Combine(this.storeInformation.Path, relativefilePathOrSourceFolderPath);

            if (!CheckIfBackupExists(remotePath))
            {
                BackupRestoreTrace.TraceSource.WriteWarning("FileShareRecoveryPointManager", "relativefilePathOrSourceFolderPath: {0} with storePath : {1} not found"
                                                            , relativefilePathOrSourceFolderPath, this.storeInformation.Path);
                return;
            }
            if (isFolder)
            {
                var enumerateInfo = new FileEnumerateInfo
                {
                    DirectoryPath    = remotePath,
                    SearchOptionEnum = SearchOption.AllDirectories
                };

                BackupRestoreUtility.PerformIOWithRetries(
                    enumInfo =>
                {
                    PerformDestinationOperation(EnumerateFiles, enumInfo);
                },
                    enumerateInfo);

                List <string> filePathList = enumerateInfo.Files.ToList();
                foreach (var filePath in filePathList)
                {
                    BackupRestoreUtility.PerformIOWithRetries(
                        file =>
                    {
                        PerformDestinationOperation(DeleteFile, file);
                    },
                        filePath);
                }
            }
            else
            {
                BackupRestoreUtility.PerformIOWithRetries(
                    file =>
                {
                    PerformDestinationOperation(DeleteFile, file);
                },
                    remotePath);
            }
        }
예제 #2
0
        public IEnumerable <string> ListMetadataFilesInTheFolder(string directoryName)
        {
            var enumerateInfo = new FileEnumerateInfo
            {
                DirectoryPath    = directoryName,
                FileExtension    = "*" + RecoveryPointMetadataFileExtension,
                SearchOptionEnum = SearchOption.TopDirectoryOnly
            };

            BackupRestoreUtility.PerformIOWithRetries(
                enumInfo =>
            {
                PerformDestinationOperation(EnumerateFiles, enumInfo);
            },
                enumerateInfo);

            return(enumerateInfo.Files);
        }