我试图在Windows中使用C创建目录。有些命令可以很好地工作,但我首先想要" cd"在某个目录中然后创建目录。
我正在使用此代码:
struct dirent *de;
DIR *dr = opendir("db/medicine/");
if (dr == NULL)
{
printf("Could not open current directory" );
return 0;
}
while ((de = readdir(dr)) != NULL)
{
printf("%s\n", de->d_name);
if(medicine.name == de->d_name)
{
directory_name_hit = 1;
printf("\n\n This medicine db already exists!\n");
printf("Please use edit menu for same medicine database. Redirecting ... ");
Sleep(2000);
admin_area();
}
else
{
directory_name_hit = 0;
char *temp1 = "cd \\db\\medicine\\ & mkdir ";
char *command = malloc(sizeof(strlen("cd \\db\\medicine\\ & mkdir "+strlen(medicine.name))));
strcpy(command, temp1);
strcat(command, medicine.name);
printf(command);
system(command);
}
}
closedir(dr);
我的以下内容包括:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <dirent.h>
#include <string.h>
#include <dir.h>
#include <process.h>
运行代码时出现以下错误:
.
cd \db\medicine\ & mkdir adThe system cannot find the path specified.
..
cd \db\medicine\ & mkdir ad
Process returned -1073741819 (0xC0000005) execution time : 18.897 s
Press any key to continue.
为什么系统运行正确的命令?它应该工作。路径是正确的,没有相同名称的子目录..
答案 0 :(得分:0)
谢谢大家。
我发现了另一种更好的方法。 以下是顺畅运作的新代码:
DB
我注意到如果我们在CreateDirectory中添加完整路径,它就不会创建根目录。为了创建每个目录,我们必须传递单个命令。