为什么改不了名字????

blackcat242 2004-08-16 09:51:04
我写了一个改名得软件,只是针对我的某一个文件夹的,但是却改不了名,不知为何?代码如下:
#include "stdlib.h"
#include "stdio.h"
#include "ctype.h"
#include "string.h"
void ReadTitle(FILE *fp,char newname[255])
{
int i;
char n;
fread(newname,174,1,fp);
for(i=0;(n=fgetc(fp))!='<';i++)
{
newname[i]=n;
}
newname[i]='\0';
printf("%s\n",newname);
for(;i<255;i++)
newname[i]='\0';

}
int main()
{
FILE *fp;
char oldname[255],newname[255],order[255]="ren ";
int flat;
for (int i=14001;i<=14997;i++)
{
_itoa(i,oldname,10);
strcat(oldname,".htm");
printf("%s\n",oldname);
if((fp=fopen(oldname,"r"))==NULL)
{
printf("Open File Error!!!\n");
continue;
}
else
{
ReadTitle(fp,newname);
}
if(flat=rename(oldname,newname))
printf("success\n");
fclose(fp);
}
return 0;
}
其中打印出的oldname和newname都是正确的,程序也显示出success,但文件就是不改名,文件的属性也不是只读,不知为何?
...全文
135 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ddc 2004-08-17
  • 打赏
  • 举报
回复
你用fp打开文件了,当然不能rename,修改为在rename前close(fp).
herryhuang 2004-08-17
  • 打赏
  • 举报
回复
至于打印success,就是因为rename函数返回了非0的值才会打印的。
herryhuang 2004-08-17
  • 打赏
  • 举报
回复
你改名的时候,已经将文件打开,而打开的文件是不能改名的。

69,373

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧