2014-03-06 51 views
0

我一直在問我的同事們寫了一個程序,讓我們進入一個工號,它會帶我們到我們的數據庫(SolidWorks的EPDM)內正確的文件夾。文件夾的結構如下:C:\ Litania EPDM \ Orders \ XXXX \ XX \編號,第一組X代表年份,第二組代表月份。示例職位編號爲112113-444121-1X,因此11將是月份,12日,13年(2013年),中間6位是唯一的職位編號,1X只是後綴更改爲2X等在同一數量下是否有多個訂單。使用字符串來設置文件夾的路徑VB.Net

我需要完成的是設置變量(字符串),可以在它前面保留「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資源管理器,但沒有去預期的路徑。謝謝。

+0

你能告訴我們它正在因此你給我們的是被錯誤產生什麼想法?一目瞭然,這一切看起來都很好 – JaredPar

+0

請注意,'CStr()'是毫無意義的 - '.Text'已經是一個字符串。您還使用_very_舊語法 - 它是VB6-esque。而不是'Microsoft.VisualBasic.Left(string1,2)'do' string1.Left(2)' – Basic

+0

嘗試首先將路徑分配給字符串變量並檢查其內容以查看路徑是否正確。在我的一個應用程序中,我通過簡單地使用'Process.Start(StringVariableWithPathInIt)'來打開資源管理器中的路徑' – Jens

回答

0

我喜歡來連接這樣的文件路徑:

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

'Path.Combine'最多隻有四個組件,只有在.NET 4.0中引入時,如果有人想要嘗試使用,說.NET 3.5。 –

2

代碼的完整性是錯誤的,因爲你是串聯用「+」字符串,使用VB6的方法(前十年的編程技術),鑄造字符串不需要(字符串屬性)時,等...

而且,參數應該用雙引號括起來,以避免出現問題,例如,在這種情況下,它包含可拍攝空格的目錄因爲多於一個參數的原因沒有被包含,那麼你只需要把它包含起來就可以了:

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

謝謝。我已經採納了你的建議,並且明天將在工作中嘗試。 此外,所需的路徑(Litania EPDM)是密碼保護庫嗎?所有用戶在登錄到Windows時都會自動登錄到Vault。 – user3389547

相關問題