日期:2014-05-16  浏览次数:20748 次

土问 linux C 编程 rename 函数
linux 菜鸟求 rename 函数的 具体用法

在我的程序中我的设想是 :在一个制定新目录A下新open 一个 newfile-〉用fwn 的fn 遍历原目录下B的所有文件-〉 如果是文件则把每个文件分别通过newfile copy 到 newfile,并且rename 成他原来的名字,如果是个目录则重复第二步,直到原来的目录B下所有文件都被遍历过。
当rename 产生冲突时,即 有2 个B 目录下的原文件有相同的名字,则在命名时候加上1,2,3。。。。作为区别

1,在B 目录下拷贝了一个叫 main.c 的到A
2,遍历 B 目录下的目录 C 又发现一个叫main.c 的,则拷贝到A时候命名为 main.c.1

------解决方案--------------------
if(access(oldfile, F_OK) == 0) {
sprintf(newfile,"%s.%d", oldfile, time(NULL));
} else {
sprintf(newfile,"%s", oldfile);
}
rename(oldfile, newfile);

大概这个样子