为什么我使用FolderBrowserDialog.SelectedPath方法获得不一致的路径格式?

时间:2015-08-18 13:56:18

标签: vb.net string path string-concatenation folderbrowserdialog

我一直使用FolderBrowserDialog.SelectedPath方法得到一个不一致的路径格式,更具体地说,返回的路径似乎随机丢失或者有反斜杠,这对我的代码行造成了问题

xlWorkSheet.SaveAs(Filename:=dialog.SelectedPath & "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm", FileFormat:=52)

任何帮助都会非常感谢。

2 个答案:

答案 0 :(得分:2)

Path.Combine()将帮助您构建有效的完全限定文件名。而不是试图将所有东西都挤成一个衬里:

Dim xFil As String = "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm"
xFil = Path.Combine(dlg.SelectedPath, xFil)
xlWorkSheet.SaveAs(Filename:= xFil, FileFormat:= 52)

如果文件进入带有日期的文件夹(乍一看你的代码看起来像),日期字符串将是文件夹args之一:

Dim xFil As String = "Sales_" & dt.ToString("MMyyyy") & ".xlsm"
xFil = Path.Combine(dlg.SelectedPath, dt.ToString("ddMMMyyyy"), xFil)
xlWorkSheet.SaveAs(Filename:= xFil, FileFormat:= 52)

重点是,Path.Combine()不会错过目录分隔符或添加额外的分隔符。

答案 1 :(得分:0)

我认为你错过了路径和文件名之间的反斜杠: -

xlWorkSheet.SaveAs(Filename:=dialog.SelectedPath & "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm", FileFormat:=52)

应该是: -

xlWorkSheet.SaveAs(Filename:=dialog.SelectedPath & "\" & "Excel_Export_" & dt.ToString("ddMMMyyyy") & ".xlsm", FileFormat:=52)

我的代码应该是: -

xlWorkSheet.SaveAs(dialog.SelectedPath + "Excel_Export_" + dt.ToString("ddMMMyyyy") + ".xlsm", FileFormat:=52)