Google.VersionHandler.ObsoleteFiles.ObsoleteFiles C# (CSharp) Метод

ObsoleteFiles() публичный Метод

Build an ObsoleteFiles instance searching a set of ManifestReferences and a FileMetadataSet for old files. Old files are bundled into unreferenced (i.e not referenced by a manifest that is not pending deletion) and reference (referenced by an active manifest).
public ObsoleteFiles ( List manifestReferencesList, FileMetadataSet metadataSet ) : UnityEngine
manifestReferencesList List List of manifests to query /// for obsolete files.
metadataSet FileMetadataSet
Результат UnityEngine
        public ObsoleteFiles(
                List<ManifestReferences> manifestReferencesList,
                FileMetadataSet metadataSet) {
            // Combine all currently referenced and obsolete files into a
            // global sets.
            var currentFiles = new HashSet<string>();
            var obsoleteFiles = new HashSet<string>();
            foreach (var manifestReferences in manifestReferencesList) {
                currentFiles.UnionWith(manifestReferences.currentFiles);
                obsoleteFiles.UnionWith(manifestReferences.obsoleteFiles);
            }
            // Fold in obsolete files that are not referenced by manifests.
            foreach (var metadataByVersion in metadataSet.Values) {
                obsoleteFiles.UnionWith(
                    metadataByVersion.FindObsoleteVersions());
            }
            // Filter the obsoleteFiles set for all obsolete files currently
            // in use and add to a dictionary indexed by filename
            // which contains a list of manifest filenames which reference
            // each file.
            var referencedObsoleteFiles =
                new Dictionary<string, List<string>>();
            var obsoleteFilesToDelete = new HashSet<string>();
            foreach (var obsoleteFile in obsoleteFiles) {
                var manifestsReferencingFile = new List<string>();
                foreach (var manifestReferences in manifestReferencesList) {
                    if (manifestReferences.currentFiles.Contains(
                            obsoleteFile)) {
                        manifestsReferencingFile.Add(
                            manifestReferences.currentMetadata.filename);
                    }
                }
                // If the referenced file doesn't exist, ignore it.
                if (!File.Exists(obsoleteFile)) {
                    continue;
                }
                if (manifestsReferencingFile.Count > 0) {
                    referencedObsoleteFiles[obsoleteFile] =
                        manifestsReferencingFile;
                } else {
                    obsoleteFilesToDelete.Add(obsoleteFile);
                }
            }
            unreferenced = obsoleteFilesToDelete;
            referenced = referencedObsoleteFiles;
        }
    }
VersionHandler.ObsoleteFiles