C程序将文件复制到一个位置
我想将文件从一个位置复制到使用C程序的不同位置,任何一个可以给我一个提示,我该怎么办呢?C程序将文件复制到一个位置
我成为这个,我不知道,即时通讯使用代码块编译和编写程序。
// Please help me out... I have only included some files such as:
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <dir.h>
#include <dos.h>
#include <io.h>
int main()
{
}
帮帮我。
便携方式:
- 打开源文件进行读取
- 创建从源中读取目标文件
- 写入到目标
的平台 - 具体方法:
- 找出如何调用平台内置的复制功能(例如。在* NIX上执行
/bin/cp
)
那么你可以按照任何路线。您没有告诉我们您是否受限于Standard-C。实际上你包含一个表示你在Windows上的头文件。
富<输入>输出
另外:对于此类职位的,你只需调用这样的程序使用Windows API在这种情况下 CopyFile
#include <stdio.h>
int main(int argc, char **argv)
{
char buffer[1024];
size_t num;
while ((num = fread(buffer, 1, sizeof(buffer), stdin)) > 0)
fwrite(buffer, 1, num, stdout);
}
现在,您可以复制一个文件,您可以将输入和输出文件放在命令行上并使用fopen()打开它们。
您将需要fopen()两个文件一个用于读取,一个用于写入,然后创建一个缓冲区来存储临时字节。那么你将需要从一个文件读取(),并将write()写入另一个文件。 不要忘记当你完成关闭()文件。
实施例的伪代码:
fopen(path, mode);
char buff[256];
//This should be in a loop until EOF:
{
read(file, buffer, (buffer size));
write(file, buffer, (buffer size));
}
close(file);
即事物的要旨。如果您需要更多的帮助,我建议使用手册页来弄清楚这些功能是如何工作的。 “man fopen()”。因为它是(几乎)其他地方
文件处理是在代码::块相同。
首先,创建一个文件流:
FILE *fp;
接下来,打开写( “W”),并给予完整路径。
myf= fopen ("c:\\windows\\name.bat", "w");>
然后,做你的事:阅读()/写()由drew12或fprintf中()或任何捕获你的想象的建议。此后,关闭它关闭:
fclose(*fp);
我敢肯定,你可以在任何C基准得到这一切,如this。
感谢您的想法! – 2012-04-03 19:38:31
最终你可以以某种方式调用unix'cp'命令... – evotopid 2012-04-03 15:40:27
你想使用系统调用吗?如果不是,您可以打开要复制的文件,在所需的目录中用相同的名称创建一个新文件,读取第一个文件中的所有数据并将其写入第二个文件。这个http://www.cplusplus.com/reference/clibrary/cstdio/FILE/显示了如何使用'stdout'来完成,你必须改变到另一个文件。 – twain249 2012-04-03 15:44:55
也许在Windows上,(dos.h)。除非你仍然在Windows 95上,否则转储该dos.h并包含windows.h。调用copyfile()API。 – 2012-04-03 15:45:43