我正在 vb.net 中开发一个应用程序。您将任何类型的文件拖到 exe 上,就会弹出一个窗口,其中包含该文件的一些选项,然后它将文件保存到不同的位置,执行一些 SQL 魔法等。它在大多数情况下都非常有效。
我发现的唯一问题是,如果文件的路径包含任何空格,应用程序将立即崩溃并显示错误窗口:/image/mVamO.png
我正在使用: 私有(private)文件名为 String = Command$ 它位于我的表单的类声明中,而不是在子/函数中。 如果没有这一行,我的程序可以正常运行(尽管无用,无需访问文件)。 我也尝试过(我想就是这样,我现在没有代码): 私有(private)文件名为 String = Environment.CommandLine 它也有同样的问题。
那么,在vb.net中,有没有办法将文件拖到exe上并使用该路径名,即使路径名中有空格?
最佳答案
如果拖动文件的路径包含空格,Windows 将在传递的命令行参数两边加上双引号。问题是,您使用古老的 VB6 方式来检索参数,您会看到双引号。 .NET 则反对,双引号在路径名中无效。使用这个:
Dim path = Command$.Replace("""", "")
或者 .NET 方式:
Sub Main(ByVal args() As String)
If args.Length > 0 then
Dim path = args(0)
MsgBox(path)
'' do something with it..
End If
End Sub
关于vb.net 应用程序可处理拖到 exe 上的文件,但如果文件路径中有空格,则会崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6365489/