C 语言图文+代码 实现文件复制、删除,插入,剪切 VS2017通过测试

这篇博客详细介绍了如何使用C语言实现文件的复制、删除、插入和剪切功能,包括具体的操作步骤和实现思路。作者通过创建临时文件和调整文件内容来完成操作,并在VS2017环境下通过了测试,适用于大文件操作。文中还提到了文件大小获取的注意事项以及其他辅助功能,如设置光标位置和字体颜色。
摘要由CSDN通过智能技术生成

在学习过程中,接触到到了文件复制、删除、插入的课程,之后自己按照教程功能,编写了代码;经过数次修改完善,终于得到了一份让自己稍微满意的代码;

实现了以下功能:

1、整体复制文件,默认在程序所在目录下的文件,通过输入完整路径,可实现任意文件的复制;

2、整体删除文件,默认在程序所在目录下的文件,通过输入完整路径,可实现任意文件的删除;

3、插入文件,在源文件的任意位置,插入新文件中,任意位置,任意长度的内容;

4、删除文件,在源文件的任意位置,删除任意长度的内容;

5、以上步骤执行过程中,模拟了进度显示,根据文件大小改变进度显示

6、执行完成后,文件大小的显示

ps:功能 3 的实现思路:

      1、复制源文件偏移量之前的内容到临时文件;

      2、复制插入文件要插入的内容到临时文件;

      3、复制源文件偏移量之后的内容到临时文件;

      4、删除源文件,将临时文件重命名为源文件名;

    功能 4 的实现思路:

      1、复制源文件偏移量之前的内容到临时文件;

      2、复制要偏移量和要删除内容大小之后的内容到临时文件;

      3、删除源文件,将临时文件重命名为源文件名;

涉及的其他内容:

1、获取文件大小,这里如果用fseek ,ftell两个函数,会受到 整形 long 取值范围的限制,所以采用了另一种方式,可以参考;

2、获取光标位置,设置光标位置,设置字体颜色功能记录

3、源文件同目录下创建临时文件方法 记录

4、绘制选项框方法记录

5、VS2017下编译运行通过,对80+M文件测试,2+G 文件测试没有问题。

仅在此留作记录,供交流

运行情况:

自我感觉还可以的了;

代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<windows.h>
#include<sys/stat.h>
long x, y;
long psx, psy;
long sp = 1;
//获取光标位置
void getCursorPosition(long *x, long *y)
{
	HANDLE hConsole = GetStdHandle(STD_OUTPUT_HANDLE);
	COORD coordScreen = { 0, 0 }; //光标位置
	CONSOLE_SCREEN_BUFFER_INFO csbi;
	GetConsoleScreenBufferInfo(hConsole, &csbi);
	*x = csbi.dwCursorPosition.X;
	*y = csbi.dwCursorPosition.Y;
}
//自定义的光标定位函数
void setCursorPosition(long x, long y)
{
	COORD coord;
	coord.X = x;
	coord.Y = y;
	SetConsoleCursorPosition(GetStdHandle(STD_OUT
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值