2015-11-23 180 views
0

我正在調整現有的文件傳輸Windows服務,將重新發送的文件重命名爲時間戳。出於測試目的,我需要將發送的文件顯示在目標目錄中,因爲它們是在實際發送之前的十天。例如:如果它是在2015年11月23日發送的,它需要看起來像是在2015年3月12日到達。Visual Basic添加到時間戳日期

的代碼,生成的文件名行看起來是這樣的:

Dim strFileNameToTransfer As String = My.Settings.FileDirectory.ToString() & Format(Now(), "yyyy") & Format(Now(), "MM") & Format(Now(), "dd") 

文件名在這樣的目錄顯示出來,如果在2015年11月23日發出: 「20151123.xml」 但我需要它顯示如下: 「20151203.xml」

它也需要調整月份,因爲測試將跨越到12月,現在是11月。

就像我說的,這是爲了測試目的,所以它需要回到測試結束時的樣子。我真的只需要在這裏做一個快速修復,但我對Visual Basic一無所知,而且對於編程來說,我還是一個新手。幫幫我!

+0

事情變得更容易,如果你放棄那些老VB功能:'暗淡filname As String = DateTime.Now.AddDays(10).ToString(「yyyyMMdd.x \ ml」)'反斜槓不是一個錯字,它是爲了逃避「m」 – Plutonix

回答

3

您只需將10天添加到現有日期並將該日期用於文件名。您也可以不需要將格式分成三個不同的字符串。

Dim fileDate = Now().AddDays(10) 
    Dim strFileNameToTransfer As String = My.Settings.FileDirectory.ToString() & Format(fileDate, "yyyyMMdd") 

編輯:

gmiley是正確的,它是更好地使用Path.Combine而不是字符串連接

Dim NameToTransfer As String = System.IO.Path.Combine(My.Settings.FileDirectory.ToString(), String.Format("{0}.{1}", fileDate.ToString("yyyyMMdd"), "xml")) 
+1

爲什麼不這樣做:'Dim NameToTransfer As String = System.IO.Path.Combine(My.Setting.FileDirectory.ToString(),Str ing.Format(「{0}。{1}」,fileDate.ToString(「yyyyMMdd」),「xml」)'? – gmiley

+0

完美。感謝大家! –