Lấy file từ Resources – VB.NET

Standard

 

Hê hê, vui quá, mày mò mãi mới biết cách làm, tự hỏi sao lại chơi khó anh em như vậy Nhe răng Vui vui vui Cười to1. Để add file vào Resources, chúng ta sẽ vào phần Properties, sau đó chọn mục Resources > Nhấn Add Resource > Add Existing File… > Chọn file mình muốn add.
2. Giả sử tớ add một file tên là Xe Dap Oi.mid, sau khi add vào file này được tự động đặt tên là Xe_Dap_Oi, ok, nhớ lấy nó.
3. Ở đây tớ sẽ lấy file này ra và lưu vào thư mục Temp của hệ thống với tên là xedapoi.mid, biến lưu đường dẫn khi xuất ra là strPath(nên khai báo chung để dùng khi xóa file lúc kết thúc chương trình):

Dim strPath As String
strPath = My.Computer.FileSystem.SpecialDirectories.Temp & "xedapoi.mid"

Chúng ta sẽ khai báo một vài biến để đọc và ghi dữ liệu từ Resources sang file đích:

Dim bfile() As Byte
Dim writer As BinaryWriter
Dim intIndex As Integer

Tiếp đến là thao tác lấy dữ liệu từ Resources và lưu vào biến bfile:

bfile = My.Resources.ResourceManager.GetObject(“Xe_Dap_Oi”)
Gán đường dẫn cần ghi cho biến writer:
writer = New BinaryWriter(File.Open(strPath, FileMode.OpenOrCreate))
Cuối cùng là đọc từng byte trong bfile để writer ghi ra file đích:
For intIndex = 0 To (bfile.Length - 1)
	writer.Write(bfile(intIndex))
Next
writer.Close()

Vậy là chúng ta đã hoàn tất thao tác lấy một file từ Resources và lưu ở một thư mục xác định, sau đó thì bạn có thể làm gì tùy bạn Lập dị (Cái này ứng dụng trong việc add nhạc cho keygen là tốt Mỉa mai)
Bonus: Để thuận lợi cho trường hợp cần extract nhiều file, ta viết một hàm để thực hiện việc này:

Private Sub ExtractRES(ByVal resname As String, ByVal output As String)

        Dim bfile() As Byte
        Dim writer As BinaryWriter
        Dim intIndex As Integer
        Try

            bfile = My.Resources.ResourceManager.GetObject(resname)
            writer = New BinaryWriter(File.Open(output, FileMode.OpenOrCreate))
            For intIndex = 0 To (bfile.Length - 1)

                writer.Write(bfile(intIndex))
            Next
            writer.Close()
        Catch
        End Try
End Sub

The END!

One thought on “Lấy file từ Resources – VB.NET

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s