Я новичок в C.
Я запрограммировал эту программу, которая позволяет мне пакетно переименовывать файлы в одном каталоге (в основном это показано). В настоящее время он использует функцию Rename из stdio, а используя структуру dirent, чтобы найти «старое имя». Однако это означает, что необходимо добавить «новое имя» и «старое имя» в «строку пути», чтобы Rename мог найти файлы. Я надеялся, что есть способ изменить имена файлов напрямую, используя dirent.
Я попытался изменить dp-> d_name на «новое имя», но это не изменило имена файлов.
Это не моя полная рабочая программа, а код, который я использовал для проверки других методов переименования.
#include <stdio.h>
#include <stdlib.h>
#include <dirent.h>
int main(){
DIR *dirp;
struct dirent *dp;
char dir[500];
char pathOne[500] = "Testing.txt";
int i;
printf("\nPlease enter the target directory :\n");
scanf("%[^\n]s",dir);
dirp = opendir(dir);
printf(dirp ? "Directory Connection Successful\n\n" : "Directory Connection Failed\n\n");
printf("%s\n", pathOne);
while(dp = readdir(dirp)){
if((dp->d_name[0])!='.'){
for(i = 0; dp->d_name[i] = pathOne[i]; i++);
printf("%s\n", dp->d_name);
}
}
return 0;
}
Please enter the target directory :
H:\Documents\TestFolder
Directory Connection Successful
Testing.txt
Testing.txt
Testing.txt
Testing.txt
Press any key to continue . . .
Это то, что я получаю в консоли, но имена файлов в проводнике не изменились.