示例#1
0
文件: Datei.cs 项目: ralfw/dnp2012
        public void Laden(Batch<string> dateipfade)
        {
            var dateien = new Batcher<FileInfo>(dateipfade.Elements.Length/5);

            dateipfade.ForEach(t => {
                                        var fi = new FileInfo(t);

                                        if (dateien.Add(fi) == BatchStatus.Full)
                                            Geladen(dateien.Grab(dateipfade.CorrelationId));
                                    });

            if (dateipfade.GetType() == typeof(EndOfStreamBatch<string>))
                Geladen(dateien.GrabAsEndOfStream(dateipfade.CorrelationId));
            else
                Geladen(dateien.Grab(dateipfade.CorrelationId));
        }
示例#2
0
 public Batch<Tuple<FileInfo, string>> Abfrage_beimischen(Batch<FileInfo> dateien)
 {
     var filteraufträge = new Batcher<Tuple<FileInfo, string>>(dateien.Elements.Length);
     dateien.ForEach(t =>
                         {
                             var suchvorgang = _suchvorgänge[dateien.CorrelationId];
                             var filterauftrag = new Tuple<FileInfo, string>(t, suchvorgang.Abfrage);
                             filteraufträge.Add(filterauftrag);
                         });
     if (dateien.GetType() == typeof(EndOfStreamBatch<FileInfo>))
         return filteraufträge.GrabAsEndOfStream(dateien.CorrelationId);
     return filteraufträge.Grab(dateien.CorrelationId);
 }
示例#3
0
        internal void Dateien_enummerieren(string id, string pfad, Batcher<string> batcher)
        {
            var dir = new DirectoryInfo(pfad);

            try
            {
                foreach (var file in dir.GetFiles(_dateinamenschablone))
                    if (batcher.Add(file.FullName) == BatchStatus.Full)
                        Dateien(batcher.Grab(id));

                foreach (var subdir in dir.GetDirectories())
                    Dateien_enummerieren(id, subdir.FullName, batcher);
            }
            catch(UnauthorizedAccessException ex) {}
        }
示例#4
0
        public void Enummerieren()
        {
            var sut = new Dateisystem("*.cs");

            var results = new List<Batch<string>>();
            var batcher = new Batcher<string>(100);

            sut.Dateien += _ => { };
            sut.Dateien_enummerieren("x", @"..\..", batcher);

            results.Add(batcher.Grab("x"));

            Assert.IsTrue(results.Count > 0);
            Assert.AreEqual("x", results[0].CorrelationId);
            Assert.LessOrEqual(13, results[0].Elements.Length);

            results[0].ForEach(Console.WriteLine);
        }