Текущий раздел:

Описания RDS

Приложения

Приложение А. Функции, константы и структуры RDS

А.5. Сервисные функции и макросы RDS

А.5.4. Отведение памяти и преобразование строк

А.5.4.14. rdsTransformFileName – преобразование имени файла

# Приложения

## Приложение А. Функции, константы и структуры RDS

### А.5. Сервисные функции и макросы RDS

#### А.5.4. Отведение памяти и преобразование строк

##### А.5.4.14. rdsTransformFileName – преобразование имени файла

Функция rdsTransformFileName преобразует переданное ей имя файла согласно указанной в параметре операции: выделяет путь, заменяет расширение на другое и т.п.

      RDSSTR RDSCALL rdsTransformFileNameA( // UTF8
        RDSCSTR FileName,  // Исходное имя файла (UTF8)
        DWORD Op,          // Операция (RDS_TFN_*)
        RDSCSTR Arg,       // Дополнительный аргумент (UTF8)
        int *pLength       // Возвращаемая длина строки
      );
      RDSWSTR RDSCALL rdsTransformFileNameW( // UTF16
        RDSWCSTR FileName, // Исходное имя файла (UTF16)
        DWORD Op,          // Операция (RDS_TFN_*)
        RDSWCSTR Arg,      // Дополнительный аргумент (UTF16)
        int *pLength       // Возвращаемая длина строки
      );
      // Функция-псевдоним
      RDSXSTR RDSCALL rdsTransformFileName( // Кодировка по умолчанию
        RDSXCSTR FileName, // Исходное имя файла (кодировка по умолчанию)
        DWORD Op,          // Операция (RDS_TFN_*)
        RDSXCSTR Arg,      // Дополнительный аргумент (кодировка по умолчанию)
        int *pLength       // Возвращаемая длина строки
      );

Тип указателя на эту функцию

RDS_SSDwSpI (для UTF8) или RDS_WsWsDwWspI (для UTF16)

Параметры

FileName(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Указатель на строку с именем файла, которое нужно преобразовать.
Op(DWORD)
  Выполняемая над именем файла операция:

  RDS_TFN_CHANGEEXT | Заменить расширение в имени файла на строку из параметра Arg. В параметре Arg указывается новое расширение (включая символ точки) или NULL, если расширение из имени файла нужно удалить.
  RDS_TFN_EXCLUDEPATHBS | Если в конце FileName находится символ обратной косой черты, убрать его (в противном случае FileName копируется в динамическую строку без изменений).
  RDS_TFN_GETEXT | Извлечь расширение из имени файла FileName, включая символ точки, отделяющий его от собственно имени. При отсутствии расширения в имени файла возвращается NULL.
  RDS_TFN_GETNAME | Убрать путь из FileName (возвращается собственно имя файла с расширением).
  RDS_TFN_GETPATH | Извлечь путь из имени файла FileName, включая завершающий его символ обратной косой черты.
  RDS_TFN_GETPATHNOBS | Извлечь путь из имени файла FileName, исключая завершающий его символ обратной косой черты.
  RDS_TFN_INCLUDEPATHBS | Если в конце FileName не находится символ обратной косой черты, добавить его (в противном случае FileName копируется в динамическую строку без изменений).

Arg(RDSCSTR,RDSWCSTR,RDSXCSTR)
  Дополнительный аргумент преобразования (новое расширение для операции RDS_TFN_CHANGEEXT).
pLength(int*)
  Указатель на целую переменную, в которую функция должна записать длину получившейся строки. Если вызывающей программе не нужна длина строки, в этом параметре можно передать NULL.

Возвращаемое значение

Указатель на созданную в динамической памяти строку, содержащую преобразованное имя файла. Если преобразование дает пустую строку, возвращается NULL.

Примечания

Динамическая строка, созданная функцией rdsTransformFileName, должна быть обязательно освобождена функцией rdsFree.

Пример

Пример использования функции приведен в §3.4 руководства программиста.

См. также

rdsFree, rdsStringReplace.