在不同设备上运行我的VB应用程序时出现Win32异常

时间:2016-11-26 20:00:29

标签: c# vb.net visual-studio-2013 frameworks win32-process

晚上好, 请问我在VB中打开一个打开文件的应用程序。这是我的代码:

Public Class Form1

Private Sub Form1_click(sender As Object, e As EventArgs) Handles MyClass.Click
    Dim myProc As New System.Diagnostics.Process()
    myProc.StartInfo.FileName = "E:\ex.txt" 'The file in a flash drive
    myProc.Start()
    Me.Hide()
End Sub
End Class

问题是该程序对我来说非常好(我有最新版本的.NET Framework),但是,当我在另一个办公室中尝试它时,它会给出异常“System.ComponentModel.Win32Exception 0x80004005:The system找不到指定的文件“。 请问,如何在其他设备(x86或x64,有或没有最新版本的.net框架)中使用它? 谢谢。

更新1: 我添加了异常代码:0x80004005

更新2: 我只是在我的代码中编辑了路径,因为旧的只是为了解释我的问题,但似乎这是一个非常糟糕的主意,所以,我只是修改了我的项目中的真实路径(E:\ ex) .txt)的

1 个答案:

答案 0 :(得分:0)

所有机器上的驱动器号并不总是相同,尤其是可移动存储器 System.IO.DriveInfo.GetDrives可用于获取所有逻辑驱动器的信息并查找文件:

For Each driveInfo In System.IO.DriveInfo.GetDrives ' loop all logical drives on the computer 

    If driveInfo.DriveType = System.IO.DriveType.Removable Then ' optional check if removable storage device 

        Dim fileInfos = driveInfo.RootDirectory.GetFiles("ex.txt") ' search for driveLetter:\ex.txt 

        If fileInfos.Length > 0 Then

            System.Diagnostics.Process.Start(fileInfos(0).FullName) ' start the file 

            Exit For  ' optional to leave the For loop 

        End If
    End If
Next