mask
03-04-2003, 00:53
Есть программа, к-ая на задоном диске, по заданному пути переименовывает файлы по маске *.[] в *.[]
#include <stdio.h>
#include <dos.h>
#include <dir.h>
#include <stdlib.h>
#include <direct.h>
main()
{
char sf; int d;
char dir[MAXPATH];
printf("Please, input the name of drive (‘,D,E,F etc.) : ");
scanf("%c", &sf);
if(sf=='C' || sf=='c') d=2;
if(sf=='D' || sf=='d') d=3;
if(sf=='E' || sf=='e') d=4;
if(sf=='F' || sf=='f') d=5;
int disk = setdisk(d);
disk = getdisk() + 'A';
printf("The current drive is: %c\n", disk);
_chdrive(d+1);
printf("Input path: ");
gets(dir); /* Почему-то компилятор игнорирует эту строку и пропускает ее, почему? и как исправить*/
chdir(dir);
struct find_t ffblk;
int done;
printf("Directory listing of \%s\n", dir);
done = _dos_findfirst("*.*",_A_NORMAL,&ffblk);
while (!done)
{
printf(" %s\n", ffblk.name);
done = _dos_findnext(&ffblk);
}
char oldname[80], newname[80];
/* prompt for file to rename and new name */
printf("File to rename: ");
gets(oldname);
printf("New name: ");
gets(newname);
/* Rename the file */
if (rename(oldname, newname) == 0)
printf("Renamed %s to %s.\n", oldname, newname);
else
perror("rename");
return 0;
}
Как сделать так что при указании ключа /s происходили поиск и переименование в поддирректориях?
#include <stdio.h>
#include <dos.h>
#include <dir.h>
#include <stdlib.h>
#include <direct.h>
main()
{
char sf; int d;
char dir[MAXPATH];
printf("Please, input the name of drive (‘,D,E,F etc.) : ");
scanf("%c", &sf);
if(sf=='C' || sf=='c') d=2;
if(sf=='D' || sf=='d') d=3;
if(sf=='E' || sf=='e') d=4;
if(sf=='F' || sf=='f') d=5;
int disk = setdisk(d);
disk = getdisk() + 'A';
printf("The current drive is: %c\n", disk);
_chdrive(d+1);
printf("Input path: ");
gets(dir); /* Почему-то компилятор игнорирует эту строку и пропускает ее, почему? и как исправить*/
chdir(dir);
struct find_t ffblk;
int done;
printf("Directory listing of \%s\n", dir);
done = _dos_findfirst("*.*",_A_NORMAL,&ffblk);
while (!done)
{
printf(" %s\n", ffblk.name);
done = _dos_findnext(&ffblk);
}
char oldname[80], newname[80];
/* prompt for file to rename and new name */
printf("File to rename: ");
gets(oldname);
printf("New name: ");
gets(newname);
/* Rename the file */
if (rename(oldname, newname) == 0)
printf("Renamed %s to %s.\n", oldname, newname);
else
perror("rename");
return 0;
}
Как сделать так что при указании ключа /s происходили поиск и переименование в поддирректориях?