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![]()

Rispondi quotando
