【发布时间】:2012-09-29 09:17:08
【问题描述】:
我想将一个目录的内容移动到另一个目录。我通过命令行参数指定源目录和目标目录。代码如下:
#include <stdlib.h>
#include <stdio.h>
void move_dir(FILE *src, FILE *dest) {
int c = getc(src);
while(getc(src)!=EOF) {
putc(c,dest);
}
}
int main(int argc, char* argv[])
{
FILE *src=fopen(argv[1]);
FILE *dest=fopen(argv[2]);
while(--argc>0) {
if(src!=NULL && dest!=NULL) {
move_dir(src,dest);
}
}
fclose(src);
fclose(dest);
return 0;
}
例如:
./a.out /Folder1/Folder2/Source /Folder1
这会将名为 Source 的文件夹移动到 Folder1 内。但是,当我执行此代码时,它不起作用。它用 g++ 编译得很好,运行时没有错误,但它根本不移动任何东西。关于可能出错的任何想法?
【问题讨论】:
-
你应该养成用
g++ -Wall -g编译的习惯 -
你想制作相当于
mv的命令吗?不同文件系统上的目录呢?
标签: c linux file unix directory