Files
kompas3d-mcp/docs/Kompas3D_SDK/guides/ksgetfullpathfromsystempath.md
T
mikhail e1337e4016 feat(sdk-docs): MD-база знаний SDK — в репозиторий; генератор и зеркало убраны
docs/Kompas3D_SDK/ становится каноническим источником справки КОМПАС SDK
и включается в репозиторий (2491 файл, ~14 МБ). HTML-зеркало
docs/KOMPAS_SDK_ru-RU/ (~1.4 ГБ, © АСКОН) и генератор
tools/build_kompas3d_sdk.py больше не нужны — регенерация не предполагается.

- .gitignore: MD-база разблокирована; зеркало остаётся проигнорированным
  (safety-net на случай повторной локальной выгрузки).
- CLAUDE.md / SKILL.md: убраны упоминания регенерации и зеркала.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-26 20:00:05 +03:00

87 lines
4.0 KiB
Markdown

---
title: "ksGetFullPathFromSystemPath - Сформировать полный путь к файлу из заданного относительного пути к файлу и системного пути установленного типа"
type: guide
api: [api7]
tags: [guide, api7, ksgetfullpathfromsystempath]
sources:
- ksgetfullpathfromsystempath.html
---
*API экспортных функций > Функции работы с файлами документов *
## ksGetFullPathFromSystemPath - Сформировать полный путь к файлу из заданного относительного пути к файлу и системного пути установленного типа
Пример...
Аналог данной функции при использовании Automation - метод KompasObject::ksGetFullPathFromSystemPath.
Синтаксис:
```
void ksGetFullPathFromSystemPath (char *relativePath,
char *destBuff,
int bufLen,
int pathType);
Входные параметры:
relativePath - относительный путь к файлу,
pathType - тип системной папки,
bufLen - длина отведенного буфера для возвращаемого значения в символах.
Типы системных папок...
Выходные параметры:
destBuff - буфер для сформированного полного пути к файлу.
Примечание.
При использовании Unicode следует использовать функцию ksGetFullPathFromSystemPathW.
```
## ksGetFullPathFromSystemPath - пример использования
char * catalogName[] = {"папка системных файлов",
"папка библиотек",
"папка временных файлов",
"папка конфигурации" ,
"INI-файл" };
//сформировать полный путь к заданному файлу
RequestInfo info;
memset(&info, 0, sizeof(info));
info.title = "Папки файлов системы ";
info.commands = "!Системные !Библиотеки !Временные !Конфигурация !INI-файл ";
info.prompt = "Выберите нужную папку";
int j;
static char *buf = "user.ttt";
char fileName[250];
int typeCatalog;
do {
j = ::CommandWindow(&info);
if (j > 0) {
switch (j) {
case 1 : typeCatalog = sptSYSTEM_FILES; break;// Относительно папки системных файлов
case 2 : typeCatalog = sptLIBS_FILES ; break;// Относительно папки файлов библиотек
case 3 : typeCatalog = sptTEMP_FILES ; break;// Относительно папки сохранения временных файлов
case 4 : typeCatalog = sptCONFIG_FILES; break;// Относительно папки сохранения конфигурации системы
case 5 : typeCatalog = sptINI_FILE ; break;// Относительно полного имени INI-файла системы
}
//полный путь
::ksGetFullPathFromSystemPath(buf , // относительный путь к файлу(без системного пути)
fileName, // (результат) полный путь к файлу
250, // размер буфера
typeCatalog); // путь установленного типа см. ksSystemPath
string mess = "Полный путь к файлу user.ttt \n";
mess = catalogName[j -1];
mess = " :\n";
mess = fileName ;
Message ((char*)mess.c_str());
char relName[250];
//относительный путь
::ksGetRelativePathFromSystemPath(fileName, //полный путь к файлу
relName, //(результат) относительный путь к файлу(без системного пути)
250, //размер буфера
typeCatalog); //путь установленного типа см. ksSystemPath
mess = "Относительный путь к файлу \n";
mess = fileName;
mess = "\n";
mess = catalogName[j -1];
mess = " :\n";
mess = relName;
Message ((char*)mess.c_str());
}
} while (j > 0);