示例#1
0
        public static IEnumerable<Duplicati.Library.Main.Volumes.IFileEntry> EnumerateFilesInDList(string file, Duplicati.Library.Utility.IFilter filter, Dictionary<string, string> options)
        {
            var p = Library.Main.Volumes.VolumeBase.ParseFilename(file);
            using(var cm = Library.DynamicLoader.CompressionLoader.GetModule(p.CompressionModule, file, options))
            using(var filesetreader = new Library.Main.Volumes.FilesetVolumeReader(cm, new Duplicati.Library.Main.Options(options)))
                foreach(var f in filesetreader.Files)
                {
                    if (f.Type != Duplicati.Library.Main.FilelistEntryType.File)
                        continue;

                    bool result;
                    Library.Utility.IFilter evfilter;
                    bool match = filter.Matches(f.Path, out result, out evfilter);
                    if (!match || (match && result))
                        yield return f;
                }
        }
示例#2
0
        public static IEnumerable <Duplicati.Library.Main.Volumes.IFileEntry> EnumerateFilesInDList(string file, Duplicati.Library.Utility.IFilter filter, Dictionary <string, string> options)
        {
            var p = Library.Main.Volumes.VolumeBase.ParseFilename(file);

            using (var fs = new System.IO.FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read))
                using (var cm = Library.DynamicLoader.CompressionLoader.GetModule(p.CompressionModule, fs, Library.Interface.ArchiveMode.Read, options))
                    using (var filesetreader = new Library.Main.Volumes.FilesetVolumeReader(cm, new Duplicati.Library.Main.Options(options)))
                        foreach (var f in filesetreader.Files)
                        {
                            if (f.Type != Duplicati.Library.Main.FilelistEntryType.File)
                            {
                                continue;
                            }

                            bool result;
                            bool match = filter.Matches(f.Path, out result, out _);
                            if (!match || result)
                            {
                                yield return(f);
                            }
                        }
        }
示例#3
0
        public static IEnumerable <Duplicati.Library.Main.Volumes.IFileEntry> EnumerateFilesInDList(string file, Duplicati.Library.Utility.IFilter filter, Dictionary <string, string> options)
        {
            var p = Library.Main.Volumes.VolumeBase.ParseFilename(file);

            using (var cm = Library.DynamicLoader.CompressionLoader.GetModule(p.CompressionModule, file, options))
                using (var filesetreader = new Library.Main.Volumes.FilesetVolumeReader(cm, new Duplicati.Library.Main.Options(options)))
                    foreach (var f in filesetreader.Files)
                    {
                        if (f.Type != Duplicati.Library.Main.FilelistEntryType.File)
                        {
                            continue;
                        }

                        bool result;
                        Library.Utility.IFilter evfilter;
                        bool match = filter.Matches(f.Path, out result, out evfilter);
                        if (!match || (match && result))
                        {
                            yield return(f);
                        }
                    }
        }