예제 #1
0
        protected virtual bool ShouldIgnore(string forDeleteFile)
        {
            var file = Path.GetFileName(forDeleteFile);

            var knownFiles = new List <string>
            {
                _options.NewPackageFileName,
                _options.DeployedPackageFileName,
                _options.HashesFileName,
            };

            var isKnownfile = knownFiles.Contains(file);

            if (isKnownfile)
            {
                return(true);
            }

            if (_fsUtil.IsForDelete(forDeleteFile))
            {
                return(true);
            }

            if (_options.PathsToIgnore.Any(p => _fsUtil.NormalisePath(forDeleteFile).ToLower().StartsWith(_fsUtil.NormalisePath(p.ToLower()))))
            {
                return(true);
            }

            return(false);
        }
예제 #2
0
        public virtual void DeleteObsoleteFiles()
        {
            _logger.LogInformation("Deleting obsoleted files");
            var obsoleteFileCount = 0;

            foreach (var fullName in Directory.GetFiles(".", "*", SearchOption.AllDirectories).Select(f => _fsUtil.NormalisePath(f)))
            {
                if (_fsUtil.IsForDelete(fullName))
                {
                    _fsUtil.DeleteFile(fullName);
                    obsoleteFileCount++;
                }
            }

            _logger.LogInformation("Deleted obsoleted files count={count}", obsoleteFileCount);
        }