原文链接:http://bbs.csdn.net/topics/390149260
可以使用函数access,头文件是io.h,函数原型是:
int access(const char *filename, int amode);
其中,amode参数为0时表示检查文件的存在性,如果文件存在,返回0,不存在,返回-1。
另外,这个函数还可以检查其它文件属性:
06 检查读写权限
04 检查读权限
02 检查写权限
01 检查执行权限
00 检查文件的存在性
程序范例:
<span style="font-family:SimSun;font-size:18px;">#include <stdio.h>
#include <io.h>
#include <stdlib.h>
//判断文件是否存在,如果存在则重命名
int isExist(char *filename)
{
return (access(filename, 0) == 0);
}
int main(void)
{
int i,j;
char line[100];
//读ini文件
FILE *fp = fopen("c://test.ini","r");
if(fp == NULL)
{
printf("file open failed!/n");
return 0;
}
char oldName[100],newName[100];
while(fgets(line, 100, fp))
{
printf("%s/n",line);
i = 0;
j = 0;
while(line[i] != ',')
{
oldName[j] = line[i];
++i;
++j;
}
++i;
oldName[j] = '/0';
j = 0;
while(line[i] != '/0')
{
newName[j] = line[i];
++i;
++j;
}
newName[j] = '/0';
char cmd[100];
if(isExist(oldName))
{
//重命名,也可以指定文件名的全路径
sprintf(cmd,"ren %s %s",oldName,newName);
printf("cmd: %s/n",cmd);
if(system(cmd) != 0)
{
printf("rename failed!/n");
}
}
}
return 0;
}</span>
其中test.ini文件中存放着需要修改的文件名及重新命名的名字,以逗号分开:
<span style="font-family:SimSun;font-size:18px;">2006510102112.dat,2006510102112.doc
2006510102151.dat,2006510102151.doc
200651011822.dat,200651011822.xls
200651011823.dat,200651011823.doc </span>