簡體   English   中英

需要通過VB.net在另一個目錄上打開文件

[英]Need to open file through VB.net on another directory

通過我的表單,我打開一個.exe,該文件位於debug內部的文件夾中,因此:

\\ bin \\ Debug \\ folder \\ .exe

.exe打開並創建3個不同的文件,然后關閉。 它旨在在與.exe相同的文件夾中創建它們,但是當通過VB.net使用Process.Start()打開時,則在Debug文件夾中創建它們。

有人可以對此進行修復,所以我不必移動文件嗎?

編輯 (.exe本身創建文件,某些內容可能在此子程序外部聲明)

Private Sub btnRunExe_Click(sender As Object, e As EventArgs) Handles btnRunExe.Click
    If AcptEULA.Checked = True Then
        Localpath = Application.StartupPath() + "\MCserver" + "\minecraft_server." + txtVersion.Text + ".exe"
        Downloadpath = "https://s3.amazonaws.com/Minecraft.Download/versions/" + txtVersion.Text + "/minecraft_server." + txtVersion.Text + ".exe"
        LocalpathParent = Application.StartupPath() + "\MCserver"

        Try
            Dim dirs As String() = Directory.GetFiles(LocalpathParent, "minecraft_server*.exe")
            Dim dir As String
            For Each dir In dirs
                Process.Start(dir)
            Next
        Catch
            'Console.WriteLine("The process failed: {0}", e.ToString())
        End Try

    ElseIf AcptEULA.Checked = False Then
        MsgBox("You must accept the Minecraft EULA before continuing")
    End If

End Sub

Process.Start可以與ProcessStartInfo實例一起使用,您可以在其中設置WorkingDirectory屬性。

Dim psi As ProcessStartInfo = New ProcessStartInfo()
psi.WorkingDirectory = LocalpathParent
For Each fileName In Directory.EnumerateFiles(LocalpathParent, "minecraft_server*.exe")
    psi.FileName = fileName
    Process.Start(psi)
Next

請注意,我用Directory.EnumerateFiles更改了Directory.GetFiles,使您可以在遍歷文件夾文件時處理文件,而無需將所有文件名加載到數組內存中。 如果您仍然想使用GetFiles,那么它是

Dim psi As ProcessStartInfo = New ProcessStartInfo()
psi.WorkingDirectory = LocalpathParent
Dim files as String() = Directory.GetFiles(LocalpathParent, "minecraft_server*.exe")
For Each fileName In files
    psi.FileName = fileName
    Process.Start(psi)
Next

如果您查看MSDN上的ProcessStartInfo文檔 ,則可以找到許多其他有用的屬性來微調程序的執行方式。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM