Click here to Skip to main content
15,867,939 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
Hello, for my project i need to know how to read files from an iso optical disk image.
i already browsed the web but there are not many sources available.
ive read the folowing articles:
ISO 9660 - OSDev Wiki[^]
https://www.ecma-international.org/wp-content/uploads/ECMA-119_3rd_edition_december_2017.pdf[^]

from what i understand to read a file from the iso i have to do the folowing steps

1: read the primary volume descriptor and locate the root dir entry
2: go to the lba what the root directory entry describes
3: this is the point where im stuck!!!!

when i go to the lba adress which the root directory entry describes there is a lot of data which doesnt make sense according to the structure.

long story short: can someone give me some tips (and maybe example) how to read the directory hiearchy of an iso image.

sorry for bad english but is not my primary language.

What I have tried:

Reading a lot
getting frustrated a lot
Reading an iso in an binary editor
Posted
Updated 27-May-21 6:26am

The easier way is to mount the ISO files as a virtual disk and read it as a normal volumen from there: How to mount an ISO image in Windows 10 - eMexo Technologies[^]
You can run powershell from the system function: c++ - How to call a powershell script from a C code - Stack Overflow[^] that's C++, but it should work much the same in C.

Loads, easier than deciphering ISO volumes which would pretty much require you to implement a full sector-by-sector disk reader!
 
Share this answer
 
There is not space or time here to answer such a question. You need to get hold of the technical specification for ISO files and study it in details. Wikipedia has many references, see ISO 9660 - Wikipedia[^].
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900