无法在 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.

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

简单编码器

谢谢大家。

我找到了另一种更好的方法来做到这一点。以下是运行流畅的新代码:

// check if directory exists
    // then make medicine directory
    char *temp1 = "C:\\pharmaCMS\\db\\medicine\\";
    char *result = malloc(sizeof(strlen(temp1) + strlen(medicine.name)));
    strcpy(result, temp1);
    strcat(result, medicine.name);

    struct stat sb;

    if (stat(result, &sb) == 0 && S_ISDIR(sb.st_mode))
    {
        printf("YES\n");
    }
    else
    {
        printf("NO\n");
        CreateDirectory("C:\\pharmaCMS", NULL);
        CreateDirectory("C:\\pharmaCMS\\db", NULL);
        CreateDirectory("C:\\pharmaCMS\\db\\medicine", NULL);
        CreateDirectory(result, NULL);
    }

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

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

无法在Linux中创建目录

来自分类Dev

无法在C中递归读取目录/文件

来自分类Dev

无法在WebHdfs中创建目录或文件

来自分类Dev

无法在缓存目录中创建文件

来自分类Dev

在棉花糖Android中无法创建目录

来自分类Dev

无法在/ usr / share中创建目录

来自分类Dev

无法在DirectAdmin中创建目录(mkdir)

来自分类Dev

我的与任务计划程序一起使用的应用程序无法在我的C#代码中创建目录

来自分类Dev

我的与任务计划程序一起使用的应用程序无法在我的C#代码中创建目录

来自分类Dev

无法在群组拥有的目录中创建目录

来自分类Dev

无法在C#中创建用户控件

来自分类Dev

无法在 C# 中创建按钮渐变

来自分类Dev

无法创建主目录

来自分类Dev

useradd:无法创建目录

来自分类Dev

无法创建目录

来自分类Dev

无法创建临时目录

来自分类Dev

无法创建目录

来自分类Dev

使用C ++在iOS中创建目录/文件

来自分类Dev

C#在%AppData%中创建目录

来自分类Dev

在目录C中查找最后创建的FILE

来自分类Dev

使用C ++在iOS中创建目录/文件

来自分类Dev

列出Windows目录中无法在C中使用的文件

来自分类Dev

Shell文件中的'mkdir'无法创建目录:“权限被拒绝”

来自分类Dev

无法在存储根目录中创建文件?

来自分类Dev

无法在hdfs中创建目录-权限被拒绝错误

来自分类Dev

PHP-Apache无法在刚刚创建的目录中编写

来自分类Dev

无法在外部SD卡(Lollipop)中创建目录

来自分类Dev

无法在azure活动目录中创建应用-权限不足

来自分类Dev

无法在Node.js中创建目录错误