Как на VC++ NET получить из приложения путь к файлу, который находится относительно этого приложения в известной папке?
На VB NET это так: strFilePath = System.AppDomain.CurrentDomain.BaseDirectory & "..\Data\" & FileName
15.10.03 20:02: Перенесено модератором из 'C/C++' — ПК
Re: Как на VC++ NET получить из приложения путь к файлу
Здравствуйте, Igor Laptev, Вы писали:
IL>Как на VC++ NET получить из приложения путь к файлу, который находится относительно этого приложения в известной папке? IL>На VB NET это так: strFilePath = System.AppDomain.CurrentDomain.BaseDirectory & "..\Data\" & FileName
GetCurrentDirectory недостающая часть пути
Re[2]: Как на VC++ NET получить из приложения путь к файлу
Hello, Alexmoon!
You wrote on Wed, 15 Oct 2003 15:38:18 GMT:
A> Здравствуйте, Igor Laptev, Вы писали:
IL>> Как на VC++ NET получить из приложения путь к файлу, который находится IL>> относительно этого приложения в известной папке? На VB NET это так: IL>> strFilePath = System.AppDomain.CurrentDomain.BaseDirectory & "..\Data\" IL>> & FileName A> GetCurrentDirectory недостающая часть пути
Не следует путать текущую директорию и путь к исполняемому файлу (который можно получить, вызвав GetModuleFileName). И вообще эту тему в WinAPI пора...
Best regards,
Sergey.
Posted via RSDN NNTP Server 1.7 "Bedlam"
Одним из 33 полных кавалеров ордена "За заслуги перед Отечеством" является Геннадий Хазанов.
Re[3]: Как на VC++ NET получить из приложения путь к файлу
S>Не следует путать текущую директорию и путь к исполняемому файлу (который можно получить, вызвав GetModuleFileName). И вообще эту тему в WinAPI пора...
Не, ну почему же? В дотнете это скорее Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName
А главное без ДллИмпортов...
... << RSDN@Home 1.1 beta 2 >>
Есть логика намерений и логика обстоятельств, последняя всегда сильнее.
Re[3]: Как на VC++ NET получить из приложения путь к файлу
Здравствуйте, Sergey, Вы писали:
S>Hello, Alexmoon! S>You wrote on Wed, 15 Oct 2003 15:38:18 GMT:
A>> Здравствуйте, Igor Laptev, Вы писали:
IL>>> Как на VC++ NET получить из приложения путь к файлу, который находится IL>>> относительно этого приложения в известной папке? На VB NET это так: IL>>> strFilePath = System.AppDomain.CurrentDomain.BaseDirectory & "..\Data\" IL>>> & FileName A>> GetCurrentDirectory недостающая часть пути
S>Не следует путать текущую директорию и путь к исполняемому файлу (который можно получить, вызвав GetModuleFileName). И вообще эту тему в WinAPI пора...
никто ничего не путает. начнем с того, что такое текущая директория для процесса. если небыло ни разу вызвана функция SetCurrentDirectory, то это базовая директория откуда был запущен исполняемый модуль инициализирующий процесс. вопрос как был задан? Нужно определить полный путь к файлу, который находится относительно исполняемого модуля в известной папке. Можно конечно GetModuleFileName, но зачем потом это имя еще и парсить, чтобы из полного имени файла получить путь к нему. Был дан краткий ответ как получить недостающую часть пути для формирования полного пути.
Re[4]: Как на VC++ NET получить из приложения путь к файлу
Здравствуйте, Alexmoon, Вы писали:
A>никто ничего не путает. начнем с того, что такое текущая директория для процесса. если небыло ни разу вызвана функция SetCurrentDirectory, то это базовая директория откуда был запущен исполняемый модуль инициализирующий процесс. вопрос как был задан? Нужно определить полный путь к файлу, который находится относительно исполняемого модуля в известной папке. Можно конечно GetModuleFileName, но зачем потом это имя еще и парсить, чтобы из полного имени файла получить путь к нему. Был дан краткий ответ как получить недостающую часть пути для формирования полного пути.
То что вы пишите неверно.
Сделайте ярлык на вашу программу и в свойствох укажите текущий каталог отличный от каталога в котором рсположен программа. При запуске программы Directory.GetCurrentDirectory() вернет каталог, указанный в свойствах ярлыка.
Re[4]: Как на VC++ NET получить из приложения путь к файлу
Здравствуйте, VladD2, Вы писали:
VD>Здравствуйте, Sergey, Вы писали:
S>>Не следует путать текущую директорию и путь к исполняемому файлу (который можно получить, вызвав GetModuleFileName). И вообще эту тему в WinAPI пора...
VD>Не, ну почему же? В дотнете это скорее Assembly.GetExecutingAssembly().GetModules()[0].FullyQualifiedName
VD>А главное без ДллИмпортов...
тоже рабочая идея. Если вызвать метод получения массива объектов характеризующих все модули подгруженные в адресное пространство процесса, то первым
в списке как раз и будет сам исполняемый модуль.
Так увлекся WinAPI, что даже в классификацию форума не глянул.
Re[5]: Как на VC++ NET получить из приложения путь к файлу
Здравствуйте, Lloyd, Вы писали:
L>Здравствуйте, Alexmoon, Вы писали:
A>>никто ничего не путает. начнем с того, что такое текущая директория для процесса. если небыло ни разу вызвана функция SetCurrentDirectory, то это базовая директория откуда был запущен исполняемый модуль инициализирующий процесс. вопрос как был задан? Нужно определить полный путь к файлу, который находится относительно исполняемого модуля в известной папке. Можно конечно GetModuleFileName, но зачем потом это имя еще и парсить, чтобы из полного имени файла получить путь к нему. Был дан краткий ответ как получить недостающую часть пути для формирования полного пути.
L>То что вы пишите неверно. L>Сделайте ярлык на вашу программу и в свойствох укажите текущий каталог отличный от каталога в котором рсположен программа. При запуске программы Directory.GetCurrentDirectory() вернет каталог, указанный в свойствах ярлыка.
логично. полностью согласен. ответ принят.
даже добавил только что в каркас своих приложений переменную среды lpBaseModuleFilePath, которая GetModuleFileName->trim короткого имени, которая логична и целиком обоснованна.
Re[6]: Как на VC++ NET получить из приложения путь к файлу
А на вторую часть вопроса ответите?
Получил я путь к приложению вместе с его именем:
char lpGDBPath[MAX_PATH];
GetModuleFileName(NULL,lpGDBPath,MAX_PATH);
а как его обрезать, дополнить и чтоб был он типа LPCTSTR PathName?