Почему я получаю несовместимый формат пути с помощью метода 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)