无法在C中创建目录?

时间:2018-05-05 08:40:13

标签: c

我试图在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.

为什么系统运行正确的命令?它应该工作。路径是正确的,没有相同名称的子目录..

1 个答案:

答案 0 :(得分:0)

谢谢大家。

我发现了另一种更好的方法。 以下是顺畅运作的新代码:

DB

我注意到如果我们在CreateDirectory中添加完整路径,它就不会创建根目录。为了创建每个目录,我们必须传递单个命令。