10000 Only EFE implemented for Metadata file entry · Issue #199 · DiscUtils/DiscUtils · GitHub
[go: up one dir, main page]
More Web Proxy on the site http://driver.im/
Skip to content

Only EFE implemented for Metadata file entry #199

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
Sonic3R opened this issue Jul 11, 2020 · 1 comment
Open

Only EFE implemented for Metadata file entry #199

Sonic3R opened this issue Jul 11, 2020 · 1 comment

Comments

@Sonic3R
Copy link
Sonic3R commented Jul 11, 2020

When I wish to extract an ISO file, I got:

Only EFE implemented for Metadata file entry

The code I used:

  try
  {
    using (FileStream isoStream = File.Open(opts.Path, FileMode.Open))
    {
      UdfReader cd = new UdfReader(isoStream);
      var dirs = cd.Root.GetDirectories();
      var files = cd.Root.GetFiles();

      foreach (var dir in dirs)
      {
        CopyDir(dir, opts.Output);
      }

      foreach (var file in files)
      {
        var path = FolderUtility.Combine(opts.Output, file.Name);
        CopyFile(file, path);
      }
    }
  }
  catch (Exception ex)
  {
    Console.ForegroundColor = ConsoleColor.Red;
    Console.WriteLine(ex.Message);
  }

and


    static void CopyDir(DiscDirectoryInfo ddi, string outpath)
    {
      string path = FolderUtility.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 (DiscFileInfo file in files)
        {
          var filePath = FolderUtility.Combine(outpath, file.FullName);

          Console.WriteLine($"Creating file {filePath} ( {SizeConverter.SizeToText(file.Length)} )");

          if (File.Exists(filePath))
          {
            File.Delete(filePath);
          }

          CopyFile(file, filePath);
        }
      }

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

    static void CopyFile(DiscFileInfo file, string filePath)
    {
      using (FileStream fs = File.Create(filePath))
      {
        using (var fileStream = file.Open(FileMode.Open))
        {
          fileStream.CopyTo(fs);
        }
      }
    }

What is the problem ? How can extract that ISO file ?

@camix
Copy link
camix commented Jan 11, 2022

I also ran into this error when trying to read a specific Blu-ray iso file. The image mounts and is playable on my system via VLC but if I try to construct a reader (UdfReader cd = new UdfReader(isoStream)) I get the EFE implemented exception. I don't know if this is useful but using other disc analysis tools I can see that the UDF structure of the iso file is as follows:

"Disc Type Information" | 0-31
"Volume Descriptor Sequence" | 32-37
"Reserve Volume Descriptor Sequence" | 64-79
"Logical Volume Integrity Descriptor" | 96-97
"Anchor Volume Descriptor Pointer" | 256-256
"Meta Data File" | 480-480
"Fileset Descriptor","Meta Data File","Meta Data Mirror File" | 512-513
"Meta Data File","Meta Data Mirror File","Root Node" | 514-514
"Meta Data File","Meta Data Mirror File" | 515-1567
"Meta Data Mirror File" | 14070528-14070528

If you contact me I can get you a copy of the iso file or help debug things further.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants
0