文件夹的复制----c语言实现
来源:互联网 发布:腾讯软件助手 编辑:程序博客网 时间:2024/05/21 09:03
代码是从网上找的,一段文件复制,一段文件夹遍历
我把两段代码结合在一起了,对遍历代码略作修改。
//头文件
#pragma once#include <stdio.h>#include <stdlib.h>#include <tchar.h>#include <direct.h>#include <string.h>#include <io.h>#include <process.h>#define LOG#define SIZEBUFF 255#define SIZEOFBUFFER 256*1024L /* 缓冲区大小,默认为256KB */#define STR_SIZE 120extern long filesize(FILE *stream);extern int copyfile(const char* src, const char* dest);extern int stradd(char* str, char * str1, char * str2);extern int copy(char *tp, char *dir_new);extern int conf_model(char *buff);
//function.cpp
long filesize(FILE *stream){long curpos, length;curpos = ftell(stream);fseek(stream, 0L, SEEK_END); // 0 L 移动0字节length = ftell(stream);fseek(stream, curpos, SEEK_SET);return length;}int copyfile(const char* src, const char* dest){FILE *fp1, *fp2;int fsize, factread;static unsigned char buffer[SIZEOFBUFFER];fp1 = fopen(src, "rb");fp2 = fopen(dest, "wb+");if (!fp1 || !fp2) return 0;for (fsize = filesize(fp1); fsize>0; fsize -= SIZEOFBUFFER){factread = fread(buffer, 1, SIZEOFBUFFER, fp1);fwrite(buffer, factread, 1, fp2);}fclose(fp1);fclose(fp2);return 1;}int stradd(char* str, char * str1, char * str2){sprintf(str, "%s/%s", str1, str2);return 0;}int copy(char *tp,char *dir_new){_mkdir(dir_new);long Handle;struct _finddata_t FileInfo;char str_base[STR_SIZE];stradd(str_base, tp, "*.*");if ((Handle = _findfirst(str_base, &FileInfo)) == -1L){printf("没有找到匹配的项目\n");return 0;}else{printf("%s\n", FileInfo.name);char str1[STR_SIZE];stradd(str1, tp, FileInfo.name);char str2[STR_SIZE];stradd(str2, dir_new, FileInfo.name);if (FileInfo.attrib == _A_SUBDIR && strcmp(FileInfo.name, ".") && strcmp(FileInfo.name, "..")){copy(str1,str2);}else{copyfile(str1, str2);}while (_findnext(Handle, &FileInfo) == 0){printf("%s\n", FileInfo.name);char str1[STR_SIZE];stradd(str1, tp, FileInfo.name);char str2[STR_SIZE];stradd(str2, dir_new, FileInfo.name);if (FileInfo.attrib == _A_SUBDIR && strcmp(FileInfo.name, ".") && strcmp(FileInfo.name, "..")){copy(str1,str2);}else{copyfile(str1, str2);}}_findclose(Handle);}return 0;}
//main 函数就不发了。。。。。。。。。。。。。
0 0
- 文件夹的复制----c语言实现
- java语言实现文件夹的复制
- C#.NET实现文件夹的复制
- C#.NET实现文件夹的复制
- C语言实现文件、文件夹的操作
- C语言字符串复制的实现
- 文件复制的C语言实现
- C语言实现的二进制文件复制
- 【C语言】C语言实现文件内容的复制
- 【C语言】C语言实现文件内容的复制
- 文件夹复制的Java实现
- java实现文件夹的复制
- C语言实现遍历文件夹
- C语言实现文件复制
- 文件复制 c语言实现
- C语言实现数据复制
- 文件复制C语言实现
- C语言实现文件复制
- Linux Shell常用技巧(十)
- 26-Linux-服务-NFS基础
- 黑马程序员:获取任意某年某月天数
- Java 嵌套使用 HashMap
- STL之deque
- 文件夹的复制----c语言实现
- Update-rc.d 命令用法详解
- USACO 1.1 Friday the Thirteenth (friday)
- UVa 839 - Not so Mobile解题报告
- iOS面试经常用到的问题
- 用记忆法记忆单词的M种方法 吴天胜
- 通过混合方式显示对象继承
- Hilbert空间递归演示
- 上帝的晨光06