c语言实现在windows系统上按当前年月日备份文件,可执行文件后跟一个原文件名实现备份
在Windows系统上使用C语言实现按当前年月日备份文件的功能,可以通过以下步骤来完成:
以下是一个示例代码,展示了如何实现这个功能:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <windows.h>
void get_current_date(char *date_str, size_t size) {
time_t t = time(NULL);
struct tm tm = *localtime(&t);
snprintf(date_str, size, "%04d%02d%02d", tm.tm_year + 1900, tm.tm_mon + 1, tm.tm_mday);
}
int copy_file(const char *src, const char *dest) {
BOOL success = CopyFile(src, dest, FALSE);
return success ? 0 : -1;
}
int main(int argc, char *argv[]) {
if (argc != 2) {
fprintf(stderr, "Usage: %s <filename>\n", argv[0]);
return 1;
}
const char *original_filename = argv[1];
char date_str[9]; // YYYYMMDD format
get_current_date(date_str, sizeof(date_str));
char backup_filename[MAX_PATH];
snprintf(backup_filename, sizeof(backup_filename), "%s_%s", date_str, original_filename);
if (copy_file(original_filename, backup_filename) == 0) {
printf("Backup successful: %s\n", backup_filename);
} else {
fprintf(stderr, "Failed to backup file: %s\n", original_filename);
return 1;
}
return 0;
}
获取当前日期:
get_current_date
函数使用 time
和 localtime
获取当前系统时间,并格式化为 YYYYMMDD
字符串。复制文件:
copy_file
函数使用 Windows API CopyFile
进行文件复制。主函数:
get_current_date
获取当前日期。YYYYMMDD_原文件名
。copy_file
进行文件复制,并输出结果。backup.c
。gcc -o backup backup.c
backup example.txt
这样,程序会在当前目录下创建一个名为 YYYYMMDD_example.txt
的备份文件,其中 YYYYMMDD
是当前的年月日。