Bepec Гость
|
Добавлено: Пн Ноя 15 2004 08:04 Заголовок сообщения: VC++ После вызова CFileDialog сбиваются относ. пути |
|
|
Пишу небольшую программку для работы с mdb-файлом с помощью DAO. В ходе выполнения постоянно подключаюсь и отключаюсь к БД, при чем в CDaoDatabase::Open указываю относительный путь (файл базы лежит в одной папке с программой), т. е. dao_db->Open("isdb.mdb"). В самой базе хранятся пути к различным файлам, их описания, и т. д., посему для добавления новой записи вызываю CFileDialog:
struct stat statbuf;
CFileDialog dlg(TRUE);
CString str("Ôàéëû ÈÑÈÄÀ (*.idf)");
str += (TCHAR)NULL;
str += "*.idf";
str += (TCHAR)NULL;
dlg.m_ofn.lpstrFilter = str;
TCHAR strName[_MAX_PATH];
strName[0] = (TCHAR)NULL;
dlg.m_ofn.lpstrFile = strName;
if(dlg.DoModal() == IDOK)
{
m_File = dlg.m_ofn.lpstrFile;
FILE* f = fopen(dlg.GetPathName(), "r");
fstat(fileno(f), &statbuf);
m_fsize = statbuf.st_size;
fclose(f);
UpdateData(0);
}
(m_File - CString для CEdit.)
После выбора файла при попытке опять подключиться БД получаю ошибку - говорит, мол, не найден файл "is.mdb". Когда прописываю абсолютные пути, все работает, как часы.
И еще вопрос - можно ли получить данные о выбранном файле при помощи CFileDialog, не открывая сам файл, как в моем коде?
Спасибо. |
|