---
title: "ksChoiceFileAppointedDir - Выдать диалог выбора файла для чтения"
type: guide
api: [api7]
tags: [guide, api7, kschoicefileappointeddir]
sources:
  - kschoicefileappointeddir.html
---

*API экспортных функций > Функции работы с файлами документов *


## ksChoiceFileAppointedDir - Выдать диалог выбора файла для чтения

Пример...
Аналог данной функции при использовании Automation - метод KompasObject::ksChoiceFileAppointedDir
Синтаксис:
```
unsigned int ksChoiceFileAppointedDir (char *ext,
char * filter,
char * name,
unsigned int bufLen,
unsigned char preview
int typeDir);
Входные параметры:
ext    - расширение имени файла,
filter    - фильтр поиска (0 - фильтр формируется автоматически),
preview    - признак подключения окна предварительного просмотра: 1 - с подключением окна, 0 - без подключения окна.
typeDir    - стартовая папка.
Выходные параметры:
Name    - буфер для имени файла,
bufLen    - длина отведенного буфера для name в символах.
Возвращаемое значение:
требуемая длина буфера в символах    - в случае удачного завершения,
NULL    - в случае отказа от выбора.
```
Примечание:
1. Параметр typeDir может иметь значения:
– sptSYSTEM_FILES - 0 - открывается папка системных файлов,
– sptLIBS_FILES - 1 - открывается папка файлов библиотек. Во всех остальных случаях открывается текущая папка.
2. Если размер отведенного буфера bufLen меньше требуемой длины - name не заполняется. В этом случае имя файла можно получить функцией GetRightFileName.
3. При использовании Unicode следует использовать функцию ksChoiceFileAppointedDirW.


## ksChoiceFileAppointedDir - Пример использования

char fileName[ MAX_TEXT_LENGTH ];
if (ksChoiceFileAppointedDir ("*.cdw", // расширение имени файла
"Чертежи(*.cdw)|*.cdw|Фрагменты(*.frw)|*.frw|Все файлы (*.*)|*.*|",
// фильтр поиска (0 - формируется автоматически)
fileName // буфер для имени файла
MAX_TEXT_LENGTH, // размер отведенного буфера name
1, // -с подключением окна предварительного просмотра,
sptSYSTEM_FILES))
{
OpenDocument (fileName, 0);
}
