Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows复制命令,如XCOPY、COPY、ROBOCOPY,在系统()中不能使用C语言_C_File_Copy_Xcopy_Copying - Fatal编程技术网

Windows复制命令,如XCOPY、COPY、ROBOCOPY,在系统()中不能使用C语言

Windows复制命令,如XCOPY、COPY、ROBOCOPY,在系统()中不能使用C语言,c,file,copy,xcopy,copying,C,File,Copy,Xcopy,Copying,我正在用C语言编写这段代码,首先找到登录的用户,然后从该用户的AppData中,我需要复制一些文件。 我能够找到,用户,我能够生成路径,但问题是我不知道如何使用C复制文件夹及其内容,所以我想到了使用System()命令。 但现在如果我使用COPY命令,它会说path不正确,而实际上它是正确的,如果我在CMD上使用相同的命令,它可以正常工作。 另外,如果我使用XCOPY,它会说该命令不能被识别为内部或外部命令,而XCOPY可以在CMD上正常工作 那么,有人能告诉我如何才能真正复制文件夹及其内容吗

我正在用C语言编写这段代码,首先找到登录的用户,然后从该用户的AppData中,我需要复制一些文件。 我能够找到,用户,我能够生成路径,但问题是我不知道如何使用C复制文件夹及其内容,所以我想到了使用System()命令。 但现在如果我使用COPY命令,它会说path不正确,而实际上它是正确的,如果我在CMD上使用相同的命令,它可以正常工作。 另外,如果我使用XCOPY,它会说该命令不能被识别为内部或外部命令,而XCOPY可以在CMD上正常工作

那么,有人能告诉我如何才能真正复制文件夹及其内容吗

我正在收缩部分代码以生成文件路径和复制命令

//making path variable
char path[100]; 
strcat(path,"C:\\Users\\");
strcat(path,username); //username is variable it gets value from function

strcat(path,"\\AppData\\Local\\Google\\Chrome\\*.*");
printf(path);


char command[100]; 
strcat(command,"copy ");
strcat(command,path);
strcat(command," D:\\myFolder");
printf("\n");
printf(command);
printf("\n");
system(command);
更新

这是我的完整代码,有人能做到吗

#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <windows.h>
#include <Lmcons.h>

int main()

{
//getting current user
TCHAR username[UNLEN+1];
DWORD len = UNLEN+1;
GetUserName(username, &len);
printf(username);
printf("\n");

//making path variable
char path[100]; 
strcpy(path,"C:\\Users\\");
strcat(path,username);

strcat(path,"\\AppData\\Local\\Google\\Chrome\\*.*");
printf(path);




//listing dir
DIR *dfd = opendir(path);
struct dirent *dp;
if(dfd != NULL) {
    while((dp = readdir(dfd)) != NULL)
        printf("%s\n", dp->d_name);
    closedir(dfd);
}

char command[100]; 
strcpy(command,"copy ");
strcat(command,path);
strcat(command," D:\\myFolder\\");
printf("\n");
printf(command);
printf("\n");
//sprintf(command, "copy %s/*.* D:/myfolder",path);
system(command);




return 0;
}
#包括
#包括
#包括
#包括
#包括
int main()
{
//获取当前用户
TCHAR用户名[UNLEN+1];
DWORD len=UNLEN+1;
GetUserName(用户名和len);
printf(用户名);
printf(“\n”);
//使路径可变
字符路径[100];
strcpy(路径,“C:\\Users\\”;
strcat(路径、用户名);
strcat(路径“\\AppData\\Local\\Google\\Chrome\\*.”;
printf(路径);
//列表目录
DIR*dfd=opendir(路径);
结构方向*dp;
如果(dfd!=NULL){
而((dp=readdir(dfd))!=NULL)
printf(“%s\n”,dp->d_名称);
closedir(dfd);
}
char命令[100];
strcpy(命令,“复制”);
strcat(命令、路径);
strcat(命令,“D:\\myFolder\\”;
printf(“\n”);
printf(指挥部);
printf(“\n”);
//sprintf(命令,“复制%s/*.*D:/myfolder”,路径);
系统(指挥部);
返回0;
}

您正在使用未初始化的数组

改变

strcat(path,"C:\\Users\\");
strcat(command,"copy ");


您正在使用未初始化的数组

改变

strcat(path,"C:\\Users\\");
strcat(command,"copy ");


并非所有电脑都有C:驱动器。非常感谢您指出这一点,我还将包括检查Windows安装目录,但目前Windows驱动器是C,但我有上述问题。相同。fcopy不被识别为内部或外部命令。我的意思是:难道不应该有更简单的命令吗?不是所有的电脑都有C:驱动器。非常感谢您指出这一点,我还将包括检查Windows安装目录,但目前Windows驱动器是C,但我有上面提到的问题。相同。fcopy不被识别为内部或外部命令。我的意思是:难道不应该有更简单的命令吗?我认为问题仍然是,我无法使用copy命令复制所有文件和文件夹,并且XCOPY不工作,所以我应该怎么做?
复制
无法复制目录。只有文件。实际上,它是
CMD.exe
shell的命令,而不是可执行文件。只要您使用的是
系统
,就可以了
xcopy.exe
是一个程序,您可以执行它。检查
COMSPEC
PATH
环境变量。我认为问题仍然是,我不能用copy命令复制所有文件和文件夹,而且XCOPY不工作,所以我应该怎么做?
copy
无法复制目录。只有文件。实际上,它是
CMD.exe
shell的命令,而不是可执行文件。只要您使用的是
系统
,就可以了
xcopy.exe
是一个程序,您可以执行它。检查
COMSPEC
PATH
环境变量。