Free cookie consent management tool by TermsFeed Policy Generator

Ignore:
Timestamp:
02/06/15 10:08:54 (9 years ago)
Author:
ascheibe
Message:

#2247 merged r11650, r11651 into stable

Location:
stable
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • stable

  • stable/HeuristicLab.Problems.Instances.TSPLIB/3.3/TSPLIBInstanceProvider.cs

    r11170 r11932  
    2323using System.Collections.Generic;
    2424using System.IO;
     25using System.IO.Compression;
    2526using System.Linq;
    2627using System.Reflection;
    2728using System.Text.RegularExpressions;
    28 using ICSharpCode.SharpZipLib.Zip;
    2929
    3030namespace HeuristicLab.Problems.Instances.TSPLIB {
     
    5252      var solutionsArchiveName = GetResourceName(FileExtension + @"\.opt\.tour\.zip");
    5353      if (!String.IsNullOrEmpty(solutionsArchiveName)) {
    54         using (var solutionsZipFile = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
    55           foreach (var entry in GetZipContents(solutionsZipFile))
    56             solutions.Add(entry.Substring(0, entry.Length - ".opt.tour".Length) + "." + FileExtension, entry);
     54        using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
     55          foreach (var entry in solutionsZipFile.Entries)
     56            solutions.Add(entry.Name.Substring(0, entry.Name.Length - ".opt.tour".Length) + "." + FileExtension, entry.Name);
    5757        }
    5858      }
     
    6060      if (String.IsNullOrEmpty(instanceArchiveName)) yield break;
    6161
    62       using (var instanceStream = new ZipInputStream(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
    63         foreach (var entry in GetZipContents(instanceStream).OrderBy(x => x)) {
     62      using (var instanceStream = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
     63        foreach (var entry in instanceStream.Entries.Select(x => x.Name).OrderBy(x => x)) {
    6464          yield return new TSPLIBDataDescriptor(Path.GetFileNameWithoutExtension(entry), GetInstanceDescription(), entry, solutions.ContainsKey(entry) ? solutions[entry] : String.Empty);
    6565        }
     
    7070      var descriptor = (TSPLIBDataDescriptor)id;
    7171      var instanceArchiveName = GetResourceName(FileExtension + @"\.zip");
    72       using (var instancesZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(instanceArchiveName))) {
     72      using (var instancesZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(instanceArchiveName), ZipArchiveMode.Read)) {
    7373        var entry = instancesZipFile.GetEntry(descriptor.InstanceIdentifier);
    74         var stream = instancesZipFile.GetInputStream(entry);
     74        var stream = entry.Open();
    7575        var parser = new TSPLIBParser(stream);
    7676        var instance = LoadInstance(parser);
     
    7878        if (!String.IsNullOrEmpty(descriptor.SolutionIdentifier)) {
    7979          var solutionsArchiveName = GetResourceName(FileExtension + @"\.opt\.tour\.zip");
    80           using (var solutionsZipFile = new ZipFile(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName))) {
     80          using (var solutionsZipFile = new ZipArchive(GetType().Assembly.GetManifestResourceStream(solutionsArchiveName), ZipArchiveMode.Read)) {
    8181            entry = solutionsZipFile.GetEntry(descriptor.SolutionIdentifier);
    82             stream = solutionsZipFile.GetInputStream(entry);
     82            stream = entry.Open();
    8383            parser = new TSPLIBParser(stream);
    8484            LoadSolution(parser, instance);
     
    105105      return "Embedded instance of plugin version " + Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyFileVersionAttribute), true).Cast<AssemblyFileVersionAttribute>().First().Version + ".";
    106106    }
    107 
    108     protected IEnumerable<string> GetZipContents(ZipInputStream zipFile) {
    109       ZipEntry entry;
    110       while ((entry = zipFile.GetNextEntry()) != null) {
    111         yield return entry.Name;
    112       }
    113     }
    114107  }
    115108}
Note: See TracChangeset for help on using the changeset viewer.