Текущая директория.
От: Vladimir_D  
Дата: 15.09.02 21:24
Оценка:
Вызываю диалог открытия файла CFileDialog. Он открывает все время
"Мои документы". Как сделать, чтобы попадать в текущую директорию? То есть перед вызовом CFileDialog нужно узнать текущую директорию и установить ее. Как это сделать? Через
GetCurrentDirectory и SetCurrenDirectory не получается.
Re: Текущая директория.
От: Alex Fedotov США  
Дата: 15.09.02 21:28
Оценка:
Здравствуйте Vladimir_D, Вы писали:

VD>Вызываю диалог открытия файла CFileDialog. Он открывает все время

VD>"Мои документы". Как сделать, чтобы попадать в текущую директорию? То есть перед вызовом CFileDialog нужно узнать текущую директорию и установить ее. Как это сделать? Через
VD>GetCurrentDirectory и SetCurrenDirectory не получается.

CFileDialog dlg(...);
dlg.m_ofn.lpstrInitialDir = _T("Whatever directory you like");

dlg.DoModal();
-- Alex Fedotov
Re[2]: Текущая директория.
От: Vladimir_D  
Дата: 16.09.02 13:43
Оценка:
Здравствуйте Alex Fedotov, Вы писали:

AF>Здравствуйте Vladimir_D, Вы писали:


VD>>Вызываю диалог открытия файла CFileDialog. Он открывает все время

VD>>"Мои документы". Как сделать, чтобы попадать в текущую директорию? То есть перед вызовом CFileDialog нужно узнать текущую директорию и установить ее. Как это сделать? Через
VD>>GetCurrentDirectory и SetCurrenDirectory не получается.

AF>
AF>CFileDialog dlg(...);
AF>dlg.m_ofn.lpstrInitialDir = _T("Whatever directory you like");

AF>dlg.DoModal();
AF>


Вопрос вот в чем. Моя программа ( EXE-шник ) в данный момент
находится в директории C:\MYDIR1. Нужно, чтобы после
dlg.Domodal() открывалась именно эта директория. Завтра
я перенес эту программу на другой компьютер, в директорию
C:\ALIENDIR2. И нужно попадать именно в эту директорию.
То есть в текущую, в ту, где находится EXE-шник, а не в какую-то
заранее известную.
Re[3]: Текущая директория.
От: sasha Грузия  
Дата: 16.09.02 13:56
Оценка:
Здравствуйте Vladimir_D, Вы писали:

VD>Здравствуйте Alex Fedotov, Вы писали:


AF>>Здравствуйте Vladimir_D, Вы писали:


VD>Вопрос вот в чем. Моя программа ( EXE-шник ) в данный момент

VD>находится в директории C:\MYDIR1. Нужно, чтобы после
VD>dlg.Domodal() открывалась именно эта директория. Завтра
VD>я перенес эту программу на другой компьютер, в директорию
VD>C:\ALIENDIR2. И нужно попадать именно в эту директорию.
VD>То есть в текущую, в ту, где находится EXE-шник, а не в какую-то
VD>заранее известную.

Используй GetModuleFileName и почувствуешь себя сухо и комфортно.
Re[3]: Текущая директория.
От: Vladimir_D  
Дата: 16.09.02 14:04
Оценка:
Здравствуйте Vladimir_D, Вы писали:

VD>Здравствуйте Alex Fedotov, Вы писали:


AF>>Здравствуйте Vladimir_D, Вы писали:


VD>>>Вызываю диалог открытия файла CFileDialog. Он открывает все время

VD>>>"Мои документы". Как сделать, чтобы попадать в текущую директорию? То есть перед вызовом CFileDialog нужно узнать текущую директорию и установить ее. Как это сделать? Через
VD>>>GetCurrentDirectory и SetCurrenDirectory не получается.

AF>>
AF>>CFileDialog dlg(...);
AF>>dlg.m_ofn.lpstrInitialDir = _T("Whatever directory you like");

AF>>dlg.DoModal();
AF>>


VD>Вопрос вот в чем. Моя программа ( EXE-шник ) в данный момент

VD>находится в директории C:\MYDIR1. Нужно, чтобы после
VD>dlg.Domodal() открывалась именно эта директория. Завтра
VD>я перенес эту программу на другой компьютер, в директорию
VD>C:\ALIENDIR2. И нужно попадать именно в эту директорию.
VD>То есть в текущую, в ту, где находится EXE-шник, а не в какую-то
VD>заранее известную.

Виноват, стормозил. Конечно, текущая директория — это ".".
Углубившись, забываешь о простых вещах.
Спасибо.
Re[4]: Текущая директория.
От: Lexey Россия  
Дата: 16.09.02 14:07
Оценка:
Здравствуйте Vladimir_D, Вы писали:

VD>Виноват, стормозил. Конечно, текущая директория — это ".".

VD>Углубившись, забываешь о простых вещах.

Текущая директория совсем не обязательно совпадает с той, из которой запущен твой exe.
Если тебе нужна именно директория с exe, то, как тебе уже сказали, используй GetModuleFileName.
Re[4]: Текущая директория.
От: OISV  
Дата: 19.09.02 13:04
Оценка: 3 (1)
Здравствуйте Vladimir_D, Вы писали:

VD>Здравствуйте Vladimir_D, Вы писали:


VD>>Здравствуйте Alex Fedotov, Вы писали:


AF>>>Здравствуйте Vladimir_D, Вы писали:


VD>>>>Вызываю диалог открытия файла CFileDialog. Он открывает все время

VD>>>>"Мои документы". Как сделать, чтобы попадать в текущую директорию? То есть перед вызовом CFileDialog нужно узнать текущую директорию и установить ее. Как это сделать? Через
VD>>>>GetCurrentDirectory и SetCurrenDirectory не получается.

AF>>>
AF>>>CFileDialog dlg(...);
AF>>>dlg.m_ofn.lpstrInitialDir = _T("Whatever directory you like");

AF>>>dlg.DoModal();
AF>>>


VD>>Вопрос вот в чем. Моя программа ( EXE-шник ) в данный момент

VD>>находится в директории C:\MYDIR1. Нужно, чтобы после
VD>>dlg.Domodal() открывалась именно эта директория. Завтра
VD>>я перенес эту программу на другой компьютер, в директорию
VD>>C:\ALIENDIR2. И нужно попадать именно в эту директорию.
VD>>То есть в текущую, в ту, где находится EXE-шник, а не в какую-то
VD>>заранее известную.

Нужна текущая директория? Нате.

char path[MAX_PATH];
GetModuleFileName(NULL,path,sizeof(path));

Только "обруби" эту строку с конца по первый \ и получишь путь к директории.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.