Debbo salvare un documento in modo binario, insieme al suo nome.
L'esempio che ho fatto sembra funzionare perfettamente.
Scrivo perché il codice mi pare abbastanza contorto e cerco il vostro aiuto per migliorarlo.
Ho scelto un nome di file strano per tenere conto di caratteri "strani" "°àèéìòù'+- .jpg"

codice:
Protected Sub Salva(sender As Object, e As System.EventArgs) Handles Button1.Click
	'leggo una immagine in modo binario in un buffer di byte()
	Dim f As String = "C:\dati\ProveNikon\images\°àèéìòù'+- .jpg"
	Dim nome As String = Path.GetFileName(f)
	Dim buffer As Byte() = ReadBinaryFile(f)

	Using st As Stream = File.Open("c:\tmp\test", FileMode.Create, FileAccess.Write), bw As New BinaryWriter(st)
		'scrivo la stringa nome
		bw.Write(nome)

		'dò uno spazio di 100 bytes perciò porto il puntatore alla posizione 100
		Dim offset As Integer = 100
		st.Seek(offset, SeekOrigin.Begin)

		'scrivo l'immagine
		bw.Write(buffer)
	End Using


End Sub

Protected Sub Leggi(sender As Object, e As System.EventArgs) Handles Button2.Click
	Using st As Stream = File.Open("c:\tmp\test", FileMode.Open, FileAccess.Read), br As New BinaryReader(st)
		'leggo il nome dell'immagine
		Dim nome As String = br.ReadString()

		Dim offset As Integer = 100

		'porto il puntatore alla posizione 100
		st.Seek(offset, SeekOrigin.Begin)

		'leggo l'immagine
		Dim buffer As Byte() = br.ReadBytes(CInt(st.Length - offset))

		'salvo l'immagine su disco col suo nome
		l.WriteBinaryFile("c:\tmp\" & nome, buffer)

		'creo l'immagine dal buffer di byte e la salvo nello stream di risposta
		l.ImgSaveToResponseOutputStream(l.ImgLoad(buffer))
	End Using
End Sub