我正在使用 VB.NET,但似乎無法正確地將 .cab 檔案添加到我的資源中?或者也許提取是我的問題?
我可以很好地添加單個檔案,例如 .bat 和 .txt。我經歷了相同的程序,甚至看到資源中的 Cab 檔案和其他檔案。我像其他人一樣將它們設定為內容和復制。但是當我使用獨立的 EXE 提取所有資源檔案時,Cab 檔案輸出為空檔案。任何其他單個資源檔案都可以正常提取。
如果是我的提取程序,我的代碼如下:
Private Sub CreateFile(ByVal Resource As Object, ByVal FullPath As String)
Dim TheFile As StreamWriter
Try
TheFile = New StreamWriter(FullPath)
TheFile.Write(Resource)
TheFile.Close()
Catch
End Try
End Sub
我的印象是 .cab 檔案是實際檔案,除非它們被 Windows 視為壓縮檔案夾?我最初有一個帶有子檔案夾的 .ZIP,我成功地將其轉換為 .CAB,因此我的 EXE 可以在檔案夾/目錄結構完好無損的情況下部署它。在我的編碼 PC 上,我可以手動展開 CAB,并且檔案結構完好無損。每個子檔案夾大約有 4-5 個檔案,3 個子檔案夾在主檔案夾級別帶有 readme.txt。
也許 .cab 不是最好的選擇?如果 .CAB 不可行,還有其他方法可以將檔案夾和檔案的 .zip 檔案放入 VB.NET 中的資源中嗎?或者,也許我錯過了一個模塊或其他可以提供幫助的東西?
uj5u.com熱心網友回復:
多虧了約翰上面關于File.WriteAllBytes
My.Computer.FileSystem.WriteAllBytes(FilePathWithFileName, _
My.Resources.YourResourceName, False)
這讓我可以完美地創建 .CAB 檔案。
如果有人遇到類似問題,并且需要代碼來擴展 CAB,這也很容易:
Dim ExtractCAB As New ProcessStartInfo("Expand", _
"""FilePathWithFileName"" -F:* ""ExtractFilePath""") _
With {.WindowStyle = ProcessWindowStyle.Hidden, .Verb = "runas"}
Process.Start(ExtractCAB)
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/490851.html
