Извлечение бинарного файла из приложения

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

Klinifini
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 23.08.2006 (Ср) 17:37

Извлечение бинарного файла из приложения

Сообщение Klinifini » 24.08.2006 (Чт) 19:18

Как получить доступ к файлу, прикрепленному к приложению?
Далаю так: Add->Add Existing Item , выбираю файл (data.bin). насколько я понимаю после компиляции он будет "зашит" в программу. А как его достать этой-же программой и сохранить в файл?

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 24.08.2006 (Чт) 19:47

насколько я понимаю после компиляции он будет "зашит" в программу
Не будет. Посмотри, что стоит в свойствах этого файла на build action?
Что бы был зашит, его надо запихнуть в ресурсы.
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Klinifini
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 23.08.2006 (Ср) 17:37

Сообщение Klinifini » 24.08.2006 (Чт) 20:54

Так, сделал. После компиляции размер приложения увеичился на размер файла (т.е. как я понял, он "вшился"). А как его теперь достать? Я хочу получить приложение типа: форма, на ней кнопка, по клику файл кидается на раб.стол. (ну или куда укажут). Помогите плз.

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 24.08.2006 (Чт) 21:14

А где ты разместил файл?
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог

Klinifini
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 23.08.2006 (Ср) 17:37

Сообщение Klinifini » 24.08.2006 (Чт) 21:31

Вроде докопался ка это сделать:

Код: Выделить всё
Public Class FileExtract
    Public Function GetFile(ByVal Name As String) As String
        Try
            Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
            Dim strm As System.IO.Stream = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name)

            Dim reader As System.IO.StreamReader = New System.IO.StreamReader(strm)
            Return reader.ReadToEnd()

        Catch ex As Exception
            Throw ex
        End Try

    End Function
End Class

Build Action файла = "Embedded Resource".
Тока не могу догнать как записать в файл.. текстовые файлы норм, а бинарные бьет. Может как-то через StreamWriter ?

Klinifini
Новичок
Новичок
 
Сообщения: 29
Зарегистрирован: 23.08.2006 (Ср) 17:37

Сообщение Klinifini » 24.08.2006 (Чт) 22:05

Все, довел до ума:
Код: Выделить всё
Public Class AssemblyFile
    Public bytes() As Byte

    Public Function ReadFile(ByVal Name As String) As Byte()
        Try
            Dim Asm As System.Reflection.Assembly = System.Reflection.Assembly.GetExecutingAssembly()
            Dim strm As System.IO.Stream = Asm.GetManifestResourceStream(Asm.GetName().Name + "." + Name)
            ReDim bytes(strm.Length - 1)
            strm.Read(bytes, 0, bytes.Length)
            strm.Close()
            Return bytes
        Catch ex As Exception
            Throw ex
        End Try
    End Function

    Public Sub Extract(ByVal Name As String, ByVal FilePath As String)
        Try
            Dim f As System.IO.FileStream = New System.IO.FileStream(FilePath, IO.FileMode.Create)
            ReadFile(Name)
            f.Write(bytes, 0, bytes.Length)
            f.Close()
        Catch ex As Exception
            Throw ex
        End Try
    End Sub

End Class

ANDLL
Великий гастроном
Великий гастроном
Аватара пользователя
 
Сообщения: 3450
Зарегистрирован: 29.06.2003 (Вс) 18:55

Сообщение ANDLL » 24.08.2006 (Чт) 22:10

Среди новичков на этом форуме умение думать самостоятельно, к сожалению, встречается редко, так что автору этого топика можно выразить Respect и пожелать дальнейших успехов на стезе программирования...
Гастрономия - наука о пище, о ее приготовлении, употреблении, переварении и испражнении.
Блог


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 110

    TopList