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 (将#修改为@)