Exemplo n.º 1
0
        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);
        }