• Привет, Гость!
  • Войти
  • Регистрация
  • Записи
  • Форумы
  • Люди
  • Файлы
  • Работа
  • Технологии

Потеря пути к Access в программе

Все форумы  Поиск  Правила  Помощь 
 Активные темы  Темы без ответов
Привет, гость! Войти
Форумы GotDotNet.Ru » Общий форум » Потеря пути к Access в программе
Страницы: 1
RSS
Потеря пути к Access в программе, (после копирования файла)
SDANET
Сообщений: 56 Регистрация: 20.04.2006
#1
30.07.2010 9:03
Всем привет!
Есть прога - работает с БД Access.
На одной форме делаю копирование файла:
Dim result As DialogResult = OpenFileDialog1.ShowDialog()
        If result = DialogResult.OK Then
            Try
                Dim fInfo As New FileInfo("DOC\" + OpenFileDialog1.SafeFileName)
                My.Computer.FileSystem.CopyFile(OpenFileDialog1.FileName, "DOC\" + OpenFileDialog1.SafeFileName, True)
                ListBox1.Items.Add("DOC\" + OpenFileDialog1.SafeFileName)
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
         End If

Потом путь "DOC\" + OpenFileDialog1.SafeFileName передаю в DataGridView для добавления, дальше идёт сохранение данных и вот тут начинаются чудеса :)
Программа теряет путь (а он относительный) к БД Access, она начинает искать БД там откуда копировался файл...
Причём у меня на компьютере таких чудес не было не разу.
Это наблюдается у заказчика - на разных машинах.

Кто сталкивался с подобным?
Что это может быть - ошибки кода или настройки компов?
А может вирусы :)
 
 
Kyle Katarn
Сообщений: 130 Регистрация: 08.01.2010
#2
30.07.2010 13:14
Это называется "рабочая директория приложения". Вызов любого файлового диалога может сменить эту самую директорию, если пользователь будет бродить по файловой системе. Соответственно, полагаться на неё нельзя. Выход - нужно путь к БД Access передавать не отностиельный, а полный и тогда всё будет ОК. Или сохранять рабочую директорию процесса перед вызовом файловых диалогов и восстанавливать после их работы (Directory.GetCurrentDirectory & Directory.SetCurrentDirectory соотвественно).
 
 
SDANET
Сообщений: 56 Регистрация: 20.04.2006
#3
30.07.2010 13:44
Спасибо за подсказку :)
Применил Directory.GetCurrentDirectory & Directory.SetCurrentDirectory
В понедельник проверю на др компах.
 
 
 
Страницы: 1
Форумы GotDotNet.Ru » Общий форум » Потеря пути к Access в программе
О сайте   Свяжитесь с нами   Версия для печати
Работает на 1С-Битрикс: Управление сайтом ASP.NET  |  Хостинг на Parking.Ru