Я бы рекомендовал использовать следующий метод: используйте комбинацию, которая добавит разделитель каталогов для вас и AppDomain.CurrentDomain.BaseDirectory вместо Application.StartUpPath, потому что он недоступен при перемещении кода в проект класса. Конечно, пример кода ниже предполагает, что файл находится в папке приложения, если в другом месте сообщите нам об этом.
Dim fileName As String = IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "MyFileName.xls")
If IO.File.Exists(fileName) Then
' do work
End If
Пример
Dim Builder As New OleDbConnectionStringBuilder
Builder.Provider = "Microsoft.Jet.OLEDB.4.0"
Builder.Add("Extended Properties", "Excel 8.0;IMEX=1;HDR=Yes;")
Builder.DataSource = IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Explanaation_notes.xls")
Dim con As New OleDbConnection(Builder.ConnectionString)
Вот модифицированный пример, чтобы пойти с вашим последним вопросом для "Files" папка
Dim fileName As String = IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Files", "Explanaation_notes.xls")
If IO.File.Exists(fileName) Then
Dim Builder As New OleDbConnectionStringBuilder
Builder.Provider = "Microsoft.Jet.OLEDB.4.0"
Builder.Add("Extended Properties", "Excel 8.0;IMEX=1;HDR=Yes;")
Builder.DataSource = fileName
Dim con As New OleDbConnection(Builder.ConnectionString)
End If
http://stackoverflow.com/questions/2216141/get -programs-path –