public void Dispose() { foreach (var item in _dir.EnumerateFiles(recursive: true)) { var info = new FileInfo(item.Path); var cleanTime = _clean switch { CleanType.AccessTime => info.LastAccessTime, CleanType.WriteTime => info.LastWriteTime, CleanType.CreationTime => info.CreationTime, _ => throw new NotImplementedException(), }; if (info.LastAccessTime < _startTime) { item.Delete(); } } foreach (var item in _dir .EnumerateDirectories(recursive: true, includeSelf: true) .Reverse()) { if (item.Empty) { item.DeleteEntireFolder(); } } }
private static IEnumerable <FilePath> GetApplicableArchivePathsInternal(GameRelease release, DirectoryPath dataFolderPath, ModKey?modKey, IComparer <FileName>?archiveOrdering) { if (modKey.HasValue && modKey.Value.IsNull) { return(Enumerable.Empty <FilePath>()); } var ret = dataFolderPath.EnumerateFiles(searchPattern: $"*{GetExtension(release)}"); if (modKey != null) { var iniListedArchives = GetIniListings(release).ToHashSet(); ret = ret .Where(archive => { if (iniListedArchives.Contains(archive.Name)) { return(true); } return(IsApplicable(release, modKey.Value, archive.Name)); }); } if (archiveOrdering != null) { return(ret.OrderBy(x => x.Name, archiveOrdering)); } return(ret); }
public static bool FoldersAreEqual(DirectoryPath first, DirectoryPath second) { return(first.EnumerateFiles(recursive: true) .SequenceEqual( second.EnumerateFiles(recursive: true), comp)); }
public static void ListPackageVersionInformation(DirectoryPath versionDirectoryPath, TextWriter writer) { var nuspecSearchPattern = SearchPattern.AllFilesWithFileExtension(NuspecFileExtension.Instance); var nuspecFilePath = versionDirectoryPath.EnumerateFiles(nuspecSearchPattern).First().AsNuspecFilePath(); // TODO: check whether any entries, ensure only one entry. LocalDirectoryNugetRepository.ListPackageVersionInformationNuspec(nuspecFilePath, writer); }
/// <summary> /// Gets the path of the <see cref="FileExtensions.Nuspec"/> file in the directory. /// </summary> public static NuspecFilePath GetNuspecFilePath(DirectoryPath versionDirectoryPath) { var searchPattern = SearchPattern.AllFilesWithFileExtension(FileExtensions.Nuspec); var nuspecFilePaths = versionDirectoryPath.EnumerateFiles(searchPattern).ToArray(); if (nuspecFilePaths.Length < 1) { throw new IOException($"No {FileExtensions.Nuspec} file found in version directory: {versionDirectoryPath}"); } if (nuspecFilePaths.Length > 1) { throw new IOException($"More than one {FileExtensions.Nuspec} file found in version directory: {versionDirectoryPath}"); } var nuspecFilePath = nuspecFilePaths.First().AsNuspecFilePath(); return(nuspecFilePath); }