微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C - 如何将文件夹结构复制到另一个文件夹?

如何解决C - 如何将文件夹结构复制到另一个文件夹?

我有这段代码将我的整个文件夹结构移动到另一个文件夹,但我只想将此结构复制到另一个文件夹,所以我的第一个文件夹仍然保留所有文件和子目录。

我还必须使用标志 '-a' - 复制隐藏文件,'-u' - 从源目录(我从中复制的第一个文件夹)中删除文件,'-o' - 目标中的现有文件覆盖和 '-dx' - 将文件复制到级别 'x' 嵌套,我真的不知道如何集成。

#include <stdio.h>
#include <stdlib.h>
#include <dos.h>
#include <iostream>
#include <dir.h>
#include <string.h>
#include <limits>
using namespace std;

char dest[PATH_MAX];
char old[PATH_MAX];
void recursiveTraverse(char* path);

int main()
{
    strcpy(dest,"E:\\moved");
    chdir("E:\\example");
    recursiveTraverse("E:\\example");
    return 1;
}

void recursiveTraverse(char* path)
{
    char searchPath[PATH_MAX];
    char newPath[PATH_MAX];
    char moved[PATH_MAX];
    int value;
    struct _finddata_t fileinfo;
    strcpy(searchPath,path);
    strcat(searchPath,"\\*.*");
    value = _findfirst(searchPath,&fileinfo);

    while (_findnext(value,&fileinfo) == 0)
    {
        if (strcmp(fileinfo.name,"..") != 0 && strcmp(fileinfo.name,".") != 0)
        {
            strcpy(moved,dest);
            strcat(moved,"\\");
            strcat(moved,fileinfo.name);
            rename(fileinfo.name,moved);
        }
        if (strcmp(fileinfo.name,"..") && fileinfo.attrib & _A_SUBDIR)
        {
            strcpy(newPath,path);
            strcat(newPath,"\\");
            strcat(newPath,fileinfo.name);
            strcpy(old,dest);
            strcat(dest,"\\");
            strcat(dest,fileinfo.name);
            mkdir(dest);
            recursiveTraverse(newPath);
            strcpy(dest,old);
        }
    }
    _findclose(value);
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。