Почему я получаю несовместимый формат пути с помощью метода FolderBrowserDialog.SelectedPath?

Я продолжаю получать несовместимый формат пути с помощью метода FolderBrowserDialog.SelectedPath, более конкретно, возвращаемый путь, кажется, случайно отсутствует или имеет обратную косую черту, это вызывает проблемы для меня для следующей строки кода

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

Любая помощь будет большой благодарностью.

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)

Если файлы собирались в папки с датой (как на первый взгляд выглядел ваш код), строка даты была бы одним из аргументов папки:

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)
Другие вопросы по тегам