Функция Создает новое имя файла из отдельных частей.
Синтаксис #include
void fnmerge(char * path, const char * drive,
const char * dir, const char * name,
const char * ext);
Файл, содержащий dir.h
прототип
Описание Функция fnmerge создает имя файла из его компонен-
тов. Новое имя файла, то есть его полный маршрут
доступа, строится следующим образом:
X:\DIR\SUBDIR\NAME.EXT , где
X - спецификация устройства;
\DIR\SUBDIR\ - директория;
NAME - имя;
.EXT - расширение
fnmerge предполагает, что для запоминания постро-
енного имени маршрута доступа достаточно места.
Максимальная длина маршрута доступа определяется
константой MAXPATH, определенной в dir.h.
Две вышеописанные функции взаимообратны. Если вы
с помощью функции fnsplit разделите на части мар-
шрут доступа path, а затем сольете полученные
компоненты с помощью функции fnmerge, то вы снова
получите маршрут доступа path.
Возвращаемое Нет.
значение
Переносимость Функция работает только в системе DOS.
Смотрите также fnsplit
Пример:
#include
#include
#include
int main(void)
{
char drive[MAXDRIVE];
char dir[MAXDIR];
char file[MAXFILE];
char ext[MAXEXT];
char s[MAXPATH];
int flag;
for (;;) {
printf("> ");
if (!gets(s)) break;
flag = fnsplit(s,drive,dir,file,ext);
printf(" drive: %s, dir: %s, file: %s, ext: %s, ",
drive, dir, file, ext);
printf("flags: ");
if (flag & DRIVE)
printf(":");
if (flag & DIRECTORY)
printf("d");
if (flag & FILENAME)
printf("f");
if (flag & EXTENSION)
printf("e");
printf("\n");
fnmerge(t,drive,dir,file,ext);
if (strcmp(t,s) != 0) /* shouldn't happen! */
printf(" --> strings are different!");
}
}
Вывод:
> C:\TURBOC\FN.C
drive: C:, dir: \TURBOC\, file: FN, ext: .C,flags: :dfe
> FILE:C
drive: , dir: , file: FILE, ext: .C, flags: fe
> \TURBOC\SUBDIR\NOEXT.
drive: , dir: \TURBOC\SUBDIR\, file: NOEXT, ext: ., flags: dfe
> C:MYFILE
drive: C:, dir: , file: MYFILE, ext: , flags: :f
> z