c - 无法在 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 中添加完整路径,它不会创建根目录。为了创建每个目录,我们必须传递单独的命令。
推荐阅读
- javascript - 如果找不到 ID (document.getElementById),希望 JS 继续
- angular - 从控制台触发 router.navigate
- batch-file - 如何修复批量无法正确加载网站链接?
- gatsby - 如何使用 Gatsby 制作的网站对 Strapi 中的数据进行变异?
- python - 如何创建仅在图像中显示黑色的白色蒙版?
- python - 如何查询扳手并获取元数据,尤其是列名?
- python - 来自 Windows Store 的关于 pip 使用 Python 的问题
- sql-server - 将这 3 个 SQL 步骤组合成 1 个查询
- json - 如何从 JSON 对象中的编码 URL 中删除转义字符
- sql - 当我有一个很大的结果时,Postgres 函数不起作用