Exemple #1
0
        private TempFileCleanup CreateTempFileCleanup(bool isMainDom = true)
        {
            var mockMainDom = new Mock <IMainDom>();

            mockMainDom.SetupGet(x => x.IsMainDom).Returns(isMainDom);

            _mockIOHelper = new Mock <IIOHelper>();
            _mockIOHelper.Setup(x => x.GetTempFolders())
            .Returns(new DirectoryInfo[] { new DirectoryInfo(_testPath) });
            _mockIOHelper.Setup(x => x.CleanFolder(It.IsAny <DirectoryInfo>(), It.IsAny <TimeSpan>()))
            .Returns(CleanFolderResult.Success());

            var mockLogger          = new Mock <ILogger <TempFileCleanup> >();
            var mockProfilingLogger = new Mock <IProfilingLogger>();

            return(new TempFileCleanup(_mockIOHelper.Object, mockMainDom.Object, mockLogger.Object));
        }
Exemple #2
0
    private void CleanupFolder(DirectoryInfo folder)
    {
        CleanFolderResult result = _ioHelper.CleanFolder(folder, _age);

        switch (result.Status)
        {
        case CleanFolderResultStatus.FailedAsDoesNotExist:
            _logger.LogDebug("The cleanup folder doesn't exist {Folder}", folder.FullName);
            break;

        case CleanFolderResultStatus.FailedWithException:
            foreach (CleanFolderResult.Error error in result.Errors !)
            {
                _logger.LogError(error.Exception, "Could not delete temp file {FileName}",
                                 error.ErroringFile.FullName);
            }

            break;
        }

        folder.Refresh(); // In case it's changed during runtime
        if (!folder.Exists)
        {
            _logger.LogDebug("The cleanup folder doesn't exist {Folder}", folder.FullName);
            return;
        }

        FileInfo[] files = folder.GetFiles("*.*", SearchOption.AllDirectories);
        foreach (FileInfo file in files)
        {
            if (DateTime.UtcNow - file.LastWriteTimeUtc > _age)
            {
                try
                {
                    file.IsReadOnly = false;
                    file.Delete();
                }
                catch (Exception ex)
                {
                    _logger.LogError(ex, "Could not delete temp file {FileName}", file.FullName);
                }
            }
        }
    }