Код просто для забавы. Выбираем картинку, дописываем к ней файлы. Картинка продолжает открываться как ни в чем не бывало, однако непосвященный и не подумает, что в ней целый набор файлов. Посвященный «распакует» ее и получит желаемое
На форме 4 кнопки, в комментариях к коду подписано, что и где.
Public Class Form1
Dim Cont As String = ""
Dim StartImage As String
Dim SplFiles() As String = {"joinfiles"}
Dim NameAndFile() As String = {"nameandfile"}
'Выбор основной картинки, шаг 1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim OFD As New OpenFileDialog With {.Title = "Выберите основную картинку", .Filter = "Изображения|*.jpg;*.png;*.bmp"}
If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
Cont &= IO.File.ReadAllText(OFD.FileName, System.Text.Encoding.Default)
StartImage = OFD.FileName
End If
End Sub
'Присоединяем файлы. Количество - по желанию. Шаг 2
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If Cont.Length = 0 Then
MsgBox("Все еще не выбрана основная картинка", MsgBoxStyle.Exclamation)
Exit Sub
End If
Dim OFD As New OpenFileDialog With {.Title = "Выберите файл для присоединения"}
If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
Cont &= SplFiles(0) & IO.Path.GetFileName(OFD.FileName) & NameAndFile(0) & IO.File.ReadAllText(OFD.FileName, System.Text.Encoding.Default)
End If
End Sub
'Готовый массив сохраняем в стартовую картинку (сделайте ее бэкап, она будет переписана). Шаг 3
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
If Cont.Length = 0 Then
MsgBox("Сохранять нечего", MsgBoxStyle.Exclamation)
Exit Sub
End If
Dim SFD As New OpenFileDialog With {.Title = "Выберите файл для присоединения"}
IO.File.WriteAllText(StartImage, Cont, System.Text.Encoding.Default)
End Sub
'Открытие результирующего файла, выбор папки. Диалог сам будет подставлять нужные имена для файлов
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim OFD As New OpenFileDialog With {.Title = "Выберите картинку, к которой присоединяли файлы", .Filter = "Изображения|*.jpg;*.png;*.bmp"}
If OFD.ShowDialog = Windows.Forms.DialogResult.OK Then
Dim Mix As String = IO.File.ReadAllText(OFD.FileName, System.Text.Encoding.Default)
Dim FilesInfo() As String = Mix.Split(SplFiles, StringSplitOptions.RemoveEmptyEntries)
If FilesInfo.Length > 1 Then
For I As Integer = 1 To FilesInfo.Length - 1
Dim F_Info() As String = FilesInfo(I).Split(NameAndFile, StringSplitOptions.RemoveEmptyEntries)
Dim SFD As New SaveFileDialog With {.FileName = F_Info(0)}
If SFD.ShowDialog = Windows.Forms.DialogResult.OK Then
IO.File.WriteAllText(SFD.FileName, F_Info(1), System.Text.Encoding.Default)
End If
Next
End If
End If
End Sub
End Class
При «распаковке» в диалоге уже будут прописаны имена сохраняемых файлов