Имена файлов и каталогов

Сведения в этом разделе относится к Explorer стиль и диалоговые окна Открыть и Сохранить как старого стиля.

Перед вызовом функции GetOpenFileName или GetSaveFileName , член lpstrFile структуры OPENFILENAME должны указывать на буфер для приема имя файла. Член nMaxFile необходимо указать размер в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), lpstrFile буфера.

Если пользователь указывает имя файла и нажимает кнопку ОК , диалоговое окно "" Копирует выбранный диск, каталог и имя файла в буфер lpstrFile . Функция также устанавливает nFileOffset и nFileExtension членов смещения в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), от начала буфера для имени файла и расширения имени файла, соответственно.

Чтобы получить только имя файла и расширение, установите lpstrFileTitle члена в буфер и установить размер в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), члена nMaxFileTitle буфера. Кроме того можно передать lpstrFile буфера в вызове функции GetFileTitle для того чтобы получить отображаемое имя выбранного файла. Обратите внимание, что имя файла, который возвращает GetFileTitle включает расширение, только если это предпочтений пользователя для отображения имен файлов.

Диалоговое окно "" использует текущий каталог для вызывающего процесса как первоначальный каталог, из которого для отображения файлов и каталогов. Использование GetCurrentDirectory или SetCurrentDirectory функции для получения или изменения текущего каталога. Для указания другой начальный каталог без изменения текущего каталога, используйте элемент lpstrInitialDir для указания имени каталога. Диалогового окна автоматически изменяет текущий каталог, когда пользователь выбирает другой диск или каталог. Чтобы запретить изменять текущий каталог диалогового окна, установите флаг OFN_NOCHANGEDIR. Этот флаг не запрещает пользователю изменять каталогов для поиска файла.

Чтобы задать расширение имени файла по умолчанию, используйте lpstrDefExt член. Если пользователь не указывает имя файла не содержит расширения, диалоговое окно "" добавляет расширение по умолчанию. Если задать расширение по умолчанию, и пользователь не указывает имя файла с другим расширением, диалоговое окно поле наборы OFN_EXTENSIONDIFFERENT флаг.

Чтобы позволить пользователю выбрать несколько файлов из каталога, установите флаг OFN_ALLOWMULTISELECT. Для совместимости со старыми приложениями, по умолчанию диалоговое окно выбора нескольких использует старый стиль пользовательского интерфейса. Для Explorer стиль отображения нескольких диалоговое окно выбора, вам необходимо установить флаг OFN_EXPLORER.

Если пользователь выбирает более чем один файл, буфер, который указывает lpstrFile член возвращает путь к текущему каталогу следуют имена файлов выбранных файлов. NFileOffset член является смещение первого имени файла, и nFileExtension элемент не используется. В следующей таблице описывается разница между стиле проводника и диалоговых окон старого стиля в возвращении несколько имен файлов.

Диалогового окна стиль Описание
Диалоговые окна проводника стиль Каталог и имя файла строки являются NULL, разделены, с лишний символ NULL после последнего имени файла. Этот формат позволяет стиле проводника диалоги для возвращения длинные имена файлов, содержащие пробелы.
Диалоговые окна старого стиля Каталог и имя файла строки разделяются пробелами. Имена с пробелами функция использует короткие имена файлов.

Вы можете использовать FindFirstFile функции для преобразования между длинные и короткие имена файлов.

Index