Create ISO/UDF image of a given list of files

As the title says: Create ISO/UDF image of a given list of files ?

Does anybody have a good example using the Nero SDK, or even better. How todo it “standalone”?

Any sourcecode xample(s) are welcome :slight_smile:

Hi,

I post same example but need more modifications in Special ( VB 6.0 Proyect ), I am fixing but dont have time ;-( , same help will be nice.

If somebody fix it plz send by mail serjaime78@hotmail.com

1.- Burn into CD with same folder of Device HD ( c: est -> d: est )

2.- Add more files and folder

3.- Desing a nice Form

This Example burn automactly 1 folder into CD

==============================================================

'Se declaran las variables del formulario , públicas a todas las funciones y procedimientos
Dim FSOImagen As FileSystemObject
Dim WithEvents MiNero As Nero
Dim PistaISONero As NeroISOTrack
Dim Dispositivos As INeroDrives
Dim WithEvents Grabadora As NeroDrive

’ ---------- SELECCIONAR OTRO DISPOSITIVO ----------
Private Sub AvailableDevices_Click()
Set Grabadora = Dispositivos(AvailableDevices.ListIndex)
End Sub
’ --------------------------------------------------

Private Sub Form_Initialize()
Set FSOImagen = New FileSystemObject
Set MiNero = New Nero
Set PistaISONero = New NeroISOTrack
Set Dispositivos = MiNero.GetDrives(NERO_MEDIA_CD)
'Aqui se establece la unidad correcta (la grabadora de CDs en mi caso es la 1)
'Podeis averiguar que dispositivo es la grabadora mirando en las propiedades de Dispositivos.
'Dispositivos(numDispositivo).DeviceName por ejemplo sería una buena pista.

For Indice = 0 To Dispositivos.Count - 1
    Unidades.AddItem Dispositivos(Indice).DeviceName, Indice
Next

Unidades.ListIndex = 0

Set Grabadora = Dispositivos(Unidades.ListIndex)

Call RealizarGrabacion
End Sub

'Cuando se descargue el formulario, al terminar la aplicación destruiremos los objetos creados
'globalmente.
Private Sub Form_Terminate()
Set Grabadora = Nothing
Set Dispositivos = Nothing
Set PistaISONero = Nothing
Set MiNero = Nothing
Set FSOImagen = Nothing
End Sub

Private Sub RealizarGrabacion()
Dim NombreDirectorioRaiz As String
Dim EtiquetaCD As String
'Call InterpretarArgumentos(NombreDirectorioRaiz, EtiquetaCD)
Call CrearImagenCD(“c:\mIRC”, “BACKUP”)
Call GrabarImagenCD
Unload Me
End Sub

'Este procedimiento crea la “imagen” del CD a partir de los archivos y subdirectorios que
'cuelgan del directorio inicial que le especifiquemos
'Con lo cual todos los archivos y subdirectorios de ese directorio origen que está en el disco
'duro o en otro dispositivo de almacenamiento se grabaran a partir del directorio raiz del cd.
Public Sub CrearImagenCD(ByVal RutaDirectorioOrigen As String, ByVal EtiquetaCD As String)
Dim Archivo As File
Dim DirectorioOrigen As Folder
Dim SubDirectorio As Folder
Dim ArchivoNero As NeroFile
Dim DirectorioRaizNero As NeroFolder

If RutaDirectorioOrigen <> “” Then
Set DirectorioOrigen = FSOImagen.GetFolder(RutaDirectorioOrigen)
'Se crea primero el directorio raiz del CD.
Set DirectorioRaizNero = New NeroFolder

DirectorioRaizNero.Name = “TEST”

'He preferido añadir primero los archivos a la imagen del cd y luego ir uno a uno añadiendo los
'directorios que directamente cuelgan del directorio origen o inicial.
'La razón de todo esto es por seguir un orden y para realizar en un futuro un control sobre el
'tamaño de todo lo que se quiere ir metiendo en el CD , asi se sumarian los tamaños de los
'archivos y directorios que vayamos añadiendo , teniendo cuidado de no sorepasar la capacidad del CD.

'Una vez creado el directorio raiz del CD se le añaden primero los archivos.

’ ------------------------------------------------
For Each Archivo In DirectorioOrigen.Files
Set ArchivoNero = New NeroFile
ArchivoNero.Name = Archivo.Name
ArchivoNero.SourceFilePath = Archivo.Path
DirectorioRaizNero.Files.Add ArchivoNero

Next Archivo
’ ---------------------------------------------------

'Se añaden despues todos los directorios que cuelgan del directorio raiz del cd
'con sus respectivos subdirectorios al nero folder , mediante una llamada a AñadirDirectorio
'Añadir directorio de forma recursiva ira añadiendo los subdirectorios de los directorios que
'cuelgan directamente del directorio origen o inicial
For Each SubDirectorio In DirectorioOrigen.SubFolders
DirectorioRaizNero.Folders.Add AnadirDirectorio(SubDirectorio)
Next SubDirectorio

'Se establecen los valores para la Pista ISO del CD
PistaISONero.Name = EtiquetaCD
PistaISONero.RootFolder = DirectorioRaizNero
PistaISONero.BurnOptions = NERO_BURN_OPTION_CREATE_ISO_FS + NERO_BURN_OPTION_RELAX_JOLIET
Else
MsgBox “No se ha especificado una ruta válida para el directorio origen”, vbInformation
End If
End Sub

'Esta funcion devuelve un Directorio NeroFolder. Esto hace fácil añadir el arbol de
'directorioscompleto a un Directorio NeroFolder existente.
Public Function AnadirDirectorio(ByVal Dir As Folder) As NeroFolder
Dim Archivo As File
Dim Directorio As Folder
Dim ArchivoNero As NeroFile
Dim DirectorioNero As NeroFolder

'Se crea un nuevo Directorio NeroFolder y se renombra.
Set DirectorioNero = New NeroFolder
DirectorioNero.Name = Dir.Name

'Se añaden todos los archivos al directorio nero folder
For Each Archivo In Dir.Files
Set ArchivoNero = New NeroFile
ArchivoNero.Name = Archivo.Name
ArchivoNero.SourceFilePath = Archivo.Path
DirectorioNero.Files.Add ArchivoNero
Next

'Se añaden todos los directorios al nero folder , mediante llamadas recursivas
For Each Directorio In Dir.SubFolders
DirectorioNero.Folders.Add AnadirDirectorio(Directorio)
Next

'Se devuelve finalmente este directorio.
Set AnadirDirectorio = DirectorioNero
End Function

'Este procedimiento es el que finalmente graba el CD.
Private Sub GrabarImagenCD()
'Se graba el CD utilizando la pista generada por el procedimiento CrearImagenCD.
'Se especifican las opciones correspondientes a lo que queremos hacer , un CD de datos.
Grabadora.BurnIsoAudioCD “Artista”, “Titulo”, 0, PistaISONero, Nothing, Nothing, NERO_BURN_FLAG_WRITE, 16, NERO_MEDIA_CD
End Sub

'Por ultimo , implementamos los manejadores de dos de los eventos de la grabadora.
Private Sub Grabadora_OnProgress(ProgressInPercent As Long, Abort As Boolean)
Me.Label1.Caption = ProgressInPercent & “%”
End Sub

Private Sub Grabadora_OnDoneBurn(StatusCode As NEROLib.NERO_BURN_ERROR)
MsgBox “CD Grabado”, vbInformation
End Sub

===============================================================

Regards Jaime
serjaime78@hotmail.com

That example is great :slight_smile: But I want to save the files from a harddrive structure to a iso/udf image.

Example: Read C:\folder and all its contens and write a image like: C:\image.iso

Is that possible with Nero sdk? Or even better, with your own sourcecode. Prefered with c++ or vb.

Edit: Spelling errors

use the image recorder device

I’ve tested using the Image Recorder, and it works ok. But since creating a iso file is a “smallpart” of neroapi, I wondered if someone had some nice tips for not beeing binded upto the NeroAPI :slight_smile:

Hello,

Can you please post a code example for creating .ISO file using Image Recorder and Save it to hard disk.

Many thanks in advance.