protected bool ExtractCore(string path) { bool extracted; using (IExtractor extractor = ExtractorFactory.Create(path)) { if (!extractor.IsArchive()) { return(true); } extracted = extractor.ExtractAll(Path.GetDirectoryName(path)); } if (extracted) { TryDeleteFile(path); } return(extracted); }
protected static bool ExtractGoodMergeData(string path, IDictionary <Guid, IList <MediaItemAspect> > extractedAspectData) { List <string> items; using (IExtractor extractor = ExtractorFactory.Create(path)) { if (!extractor.IsArchive()) { return(false); } items = extractor.GetArchiveFiles(); } if (items != null && items.Count > 0) { Logger.Debug("GoodMergeMetadataExtractor: Found {0} items in archive '{1}'", items.Count, path); MediaItemAspect.SetCollectionAttribute(extractedAspectData, GoodMergeAspect.ATTR_GOODMERGE_ITEMS, items); return(true); } else { Logger.Warn("GoodMergeMetadataExtractor: File '{0}' is empty or not a valid archive", path); } return(false); }