试图在VB.net中创建一个提取程序
所以我想创建这个程序对于一个游戏,将从一个文件夹中以.zip形式提取mod并将它们全部提取到游戏文件夹中,这是代码I到目前为止。我认为button2的代码不能从另一个按钮的文件夹中获得我已经尝试了几件事,但无法让它工作。试图在VB.net中创建一个提取程序
Imports System.IO.Compression
Imports System.IO
Public Class Form1
Dim GameFolder As String
Dim ZipFolder As String
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Close()
End Sub
Public Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim mypath As String
Dim fname As String
mypath = ZipFolder ' Select zip location folder
fname = Dir(mypath & "*.zip") ' get first zip file
Do While Len(fname) > 0
ZipFile.ExtractToDirectory(fname, mypath)
fname = Dir() ' get next matching file
Loop
End Sub
Public Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
Dim fd As FolderBrowserDialog = New FolderBrowserDialog() ' Let the user select the Zip Folder
Dim ZipFolder As String
If fd.ShowDialog() = DialogResult.OK Then
ZipFolder = fd.SelectedPath 'Set the Zipfolder string to the output of the FolderBrowser
End If
End Sub
Public Sub Button4_Click(sender As Object, e As EventArgs) Handles Button4.Click
Dim fd As FolderBrowserDialog = New FolderBrowserDialog() 'Let the user select the game folder
Dim GameFolder As String
If fd.ShowDialog() = DialogResult.OK Then
GameFolder = fd.SelectedPath 'Set the GameFolder string to the output of the FolderBrowser
End If
End Sub
End Class
除了在你的代码的顶部的初始宣布,
删除的
Dim GameFolder As String
Dim ZipFolder As String
的原因,所有其他事件是,当你在声明它们的潜艇,任何代码sub将使用本地声明而不是全局声明。
因此,当您将对话结果分配给当前代码中的变量时,它们只会分配给局部变量,而不会分配给形式变量。
它现在的作品,只有当我选择两个文件目录,并单击安装按钮(Button1),它说,它无法找到调试.exe位置中的.zip文件我真的不知道现在它意味着什么因为它确实说出了它在我的桌面上找到的.zip文件的名称。 –
我刚刚得到它的工作:)我是一个延迟,我只是建立该程序,并在视觉工作室之外运行它。现在它像魅力一样运作! –
如果在Button3_Click中删除Dim ZipFolder As String,会发生什么情况? – SearchAndResQ
他甚至应该在Button4_Click中删除'Dim GameFolder As String'。 – muffi
删除'Dim ZipFolder As String'和'Dim GameFolder As String'后它仍然不起作用,没有像以前那样发生。 –