zoukankan      html  css  js  c++  java
  • CopyDir

    #include <stdlib.h>
    #include <direct.h>
    #include <string.h>
    #include <io.h>
    #include <stdio.h>
    #include <iostream>
    #include <conio.h>
    #include <process.h>
    #include <windows.h>
    
    #define BUF_SIZE 256
    
    int copyFile(const char * pSrc, const char *pDes)
    {
        FILE *in_file, *out_file;
        char data[BUF_SIZE];
        size_t bytes_in, bytes_out;
        long len = 0;
        if ((in_file = fopen(pSrc, "rb")) == NULL)
        {
            perror(pSrc);
            return -2;
        }
        if ((out_file = fopen(pDes, "wb")) == NULL)
        {
            perror(pDes);
            return -3;
        }
        while ((bytes_in = fread(data, 1, BUF_SIZE, in_file)) > 0)
        {
            bytes_out = fwrite(data, 1, bytes_in, out_file);
            if (bytes_in != bytes_out)
            {
                perror("Fatal write error.
    ");
                return -4;
            }
            len += bytes_out;
            printf("copying file .... %d bytes copy
    ", len);
        }
        fclose(in_file);
        fclose(out_file);
        return 1;
    }
    /*********************************************************************
    功能:复制(非空)目录
    参数:pSrc,原目录名
    pDes,目标目录名
    返回:<0,失败
    >0,成功
    作者:liuyuanan 2013-04-10
    *********************************************************************/
    int copyDir(const char * pSrc, const char *pDes)
    {
        if (NULL == pSrc || NULL == pDes) return -1;
        _mkdir(pDes);
        char dir[MAX_PATH] = { 0 };
        char srcFileName[MAX_PATH] = { 0 };
        char desFileName[MAX_PATH] = { 0 };
        char *str = "\*.*";
        strcpy(dir, pSrc);
        strcat(dir, str);
        //首先查找dir中符合要求的文件
        long hFile;
        _finddata_t fileinfo;
        if ((hFile = _findfirst(dir, &fileinfo)) != -1)
        {
            do
            {
                strcpy(srcFileName, pSrc);
                strcat(srcFileName, "\");
                strcat(srcFileName, fileinfo.name);
                strcpy(desFileName, pDes);
                strcat(desFileName, "\");
                strcat(desFileName, fileinfo.name);
                //检查是不是目录
                //如果不是目录,则进行处理文件夹下面的文件
                if (!(fileinfo.attrib & _A_SUBDIR))
                {
                    copyFile(srcFileName, desFileName);
                }
                else//处理目录,递归调用
                {
                    if (strcmp(fileinfo.name, ".") != 0 && strcmp(fileinfo.name, "..") != 0)
                    {
                        copyDir(srcFileName, desFileName);
                    }
                }
            } while (_findnext(hFile, &fileinfo) == 0);
            _findclose(hFile);
            return 1;
        }
        return -3;
    }
  • 相关阅读:
    怎么样下载安装 pyinstaller
    怎样给python编译成dll文件
    解决jmeter报connection reset 错误的方法
    redis使用jmeter测试
    前端性能测试ShowSlow+Yslow
    性能测试工具curl-loader(linux)
    Js 数组返回去重后的数据
    批量处理sql 数据存入xml类型列
    SQL Server游标(转)
    SQL中varchar和nvarchar的区别
  • 原文地址:https://www.cnblogs.com/autumoonchina/p/7064895.html
Copyright © 2011-2022 走看看