Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/visual-studio-2010/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用字符串设置文件夹路径VB.Net_Vb.net_Visual Studio 2010 - Fatal编程技术网

使用字符串设置文件夹路径VB.Net

使用字符串设置文件夹路径VB.Net,vb.net,visual-studio-2010,Vb.net,Visual Studio 2010,我的同事要求我编写一个程序,允许我们输入工作编号,并将我们带到SolidWorks EPDM数据库中的适当文件夹。文件夹的结构如下:C:\Litania EPDM\Orders\XXXX\XX\number,第一组X表示年份,第二组X表示月份。例如,作业编号为112113-444121-1X,因此11是月份,12是日期,13是2013年,中间六个是唯一的作业编号,1X只是一个后缀,如果同一编号下有多个订单,则该后缀将更改为2X,依此类推 我需要完成的是设置变量字符串,这些字符串可以容纳前面有20

我的同事要求我编写一个程序,允许我们输入工作编号,并将我们带到SolidWorks EPDM数据库中的适当文件夹。文件夹的结构如下:C:\Litania EPDM\Orders\XXXX\XX\number,第一组X表示年份,第二组X表示月份。例如,作业编号为112113-444121-1X,因此11是月份,12是日期,13是2013年,中间六个是唯一的作业编号,1X只是一个后缀,如果同一编号下有多个订单,则该后缀将更改为2X,依此类推

我需要完成的是设置变量字符串,这些字符串可以容纳前面有20的年份、月份、数字和后缀,然后我需要将它们组合到文件夹路径中。以下是我所拥有的:

Public Class ProjectLookup

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim day As String = CStr(DateText.Text)
        Dim string1 As String = Microsoft.VisualBasic.Right(day, 4)
        Dim month As String = Microsoft.VisualBasic.Left(string1, 2)
        Dim year As String = "20" + Microsoft.VisualBasic.Right(string1, 2)
        Dim num As String = CStr(NumberText.Text)
        Dim suff As String = CStr(SuffixText.Text)

        Process.Start("explorer.exe", "C:\Litania EPDM\Orders\" + year + " \ " + month + " \ " + num + suff)
    End Sub
End Class

任何帮助都将不胜感激。当前,它运行并打开windows资源管理器,但未转到预期路径。谢谢。

我更喜欢这样连接文件路径:

Dim _path As String = IO.Path.Combine("C:\Litania EPDM\Orders", year, month, num & stuff)
If IO.File.Exists(_path) Then
 'proceed
End If

我更喜欢这样连接文件路径:

Dim _path As String = IO.Path.Combine("C:\Litania EPDM\Orders", year, month, num & stuff)
If IO.File.Exists(_path) Then
 'proceed
End If

代码的完整性是错误的,因为您使用十年前的VB6方法编程技术将字符串与+字符连接起来,在不需要字符串属性时强制转换字符串,等等

此外,一个参数应该用双引号括起来以避免出现问题,例如,在本例中,一个包含空格的目录被视为多个参数,因为它没有被括起来,那么您只需要将它括起来,它应该可以工作:

Process.Start("Explorer.exe", String.Format("""C:\Litania EPDM\Orders\{0}\{1}\{2}""", 
                                            year, month, num & suff ))

代码的完整性是错误的,因为您使用十年前的VB6方法编程技术将字符串与+字符连接起来,在不需要字符串属性时强制转换字符串,等等

此外,一个参数应该用双引号括起来以避免出现问题,例如,在本例中,一个包含空格的目录被视为多个参数,因为它没有被括起来,那么您只需要将它括起来,它应该可以工作:

Process.Start("Explorer.exe", String.Format("""C:\Litania EPDM\Orders\{0}\{1}\{2}""", 
                                            year, month, num & suff ))

你能告诉我们它将带你去哪里,从而让我们知道什么是错误生成的吗?乍一看,这一切看起来都很好。请注意,CSTR是毫无意义的-。文本已经是一个字符串。您还使用了非常古老的语法-它是VB6风格的。代替Microsoft.VisualBasic.Leftstring1,2执行string1.Left2Try,首先将路径指定给字符串变量,并检查其内容以查看路径是否正确。在我的一个应用程序中,我只需使用Process.StartStringVariableWithPathInit即可在资源管理器中打开路径。你能告诉我们它将带到哪里吗?因此,请告诉我们错误生成了什么?乍一看,这一切看起来都很好。请注意,CSTR是毫无意义的-。文本已经是一个字符串。您还使用了非常古老的语法-它是VB6风格的。代替Microsoft.VisualBasic.Leftstring1,2执行string1.Left2Try,首先将路径指定给字符串变量,并检查其内容以查看路径是否正确。在我的一个应用程序中,我只需使用Process.StartStringVariableWithPathInItPath就可以在explorer中打开路径。如果有人想使用,比如说.NET 3.5.path。如果有人想使用,则在.NET 4.0中只引入了最多四个组件的Combine,说.NET3.5。谢谢。我已经采纳了你的建议,明天上班时我会试试。此外,所需路径Litania EPDM是密码保护的保险库是否重要?所有用户在登录到Windows时都会自动登录到vault。谢谢。我已经采纳了你的建议,明天上班时我会试试。此外,所需路径Litania EPDM是密码保护的保险库是否重要?所有用户在登录到Windows时都会自动登录到vault。