Получить ошибку при распаковке Blu-ray ISO-файла с DiscUtils c# - PullRequest
0 голосов
/ 20 апреля 2020

Я хочу создать базовое приложение net, которое управляет синим файлом ISO (формат UDF), и я хочу извлечь содержимое из этого файла.

Файл ISO имеет структуру:

  • BDMV
  • ЛЮБОЙ
  • certificate.inf

Я пытался скопировать весь контент, например:

using (FileStream isoStream = File.Open("path_to.iso", FileMode.Open))
      {
        UdfReader cd = new UdfReader(isoStream);
        var dirs = cd.Root.GetDirectories();
        var files = cd.Root.GetFiles();

        foreach (var dir in dirs)
        {
          CopyDirs(dir, "C:\outputPath");
        }

        foreach (var file in files)
        {
          var path = Path.Combine(opts.Output, file.Name);
          file.CopyTo(path, true);
        }
      }



static void CopyDirs(DiscDirectoryInfo ddi, string outpath)
    {
      string path = Path.Combine(outpath, ddi.FullName);
      if (!Directory.Exists(path))
      {
        Console.WriteLine($"Creating directory {path}");
        Directory.CreateDirectory(path);
      }

      var files = ddi.GetFiles();
      if (files.Length > 0)
      {
        foreach (var file in files)
        {
          var filePath = Path.Combine(path, file.FullName);
          Console.WriteLine($"Creating file {filePath} ( {SizeConverter.SizeToText(file.Length)} )");
          file.CopyTo(filePath);
        }
      }

      var dirs = ddi.GetDirectories();
      if (dirs.Length > 0)
      {
        foreach (var dir in dirs)
        {
          CopyDirs(dir, outpath);
        }
      }
    }

Когда я звоню file.CopyTo(filePath), я получаю

System.NotSupportedException: 'Указанный метод не поддерживается.'

Как удовлетворить мои потребности?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...