用C语言实现,把已存在的一个文件的文件名改成当前系统时间(年月日时分秒)
#include <stdio.h>
#include <time.h>
void setTime(char* str)
{
time_t t;
struct tm* p;
time(&t);
p = localtime(&t);
sprintf(str, "%d%02d%02d%02d%02d%02d", 1900 + p->tm_year, 1 + p->tm_mon, p->tm_mday, 8 + p->tm_hour, p->tm_min, p->tm_sec);
}
void file_rename(char* oldname, char* newname)
{
char* p, * q, * w, * name, * extension;
char time[30];
setTime(time);
p = oldname;
name = NULL;
extension = NULL;
while (*p != '\0')
{
if (*p == '\\')
{
name = p + 1;
}
if (*p == '.')
{
extension = p;
}
p++;
}
p = oldname;
q = newname;
while (p != name)
{
*q++ = *p++;
}
w = time;
while (*w)
{
*q++ = *w++;
}
p = extension;
while (*p)
{
*q++ = *p++;
}
*q = '\0';
}
int main()
{
char file[100], newfile[100], time[30];
printf("输入文件名:");
gets(file);
FILE* fp = fopen(file, "r");
if (fp == NULL)
{
printf("该文件不存在!");
return;
}
fclose(fp);
file_rename(file, newfile);
if (rename(file, newfile) == 0)
{
printf("重命名成功:%s\n", newfile);
}
else
{
printf("文件重命名失败!\n");
}
return 0;
}