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

Why am I getting an inconsistent path format with FolderBrowserDialog.SelectedPath method?

我一直收到与 FolderBrowserDialog.SelectedPath 方法不一致的路径格式,更具体地说,返回的路径似乎随机丢失或带有尾部反斜杠,这导致我遇到以下代码行的问题

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

如有帮助将不胜感激。

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() 永远不会错过目录分隔符或添加额外的分隔符。

我认为您在路径和文件名之间缺少反斜杠:-

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)