如何在C中创建文件夹

如何在C中创建文件夹,c,email,directory,C,Email,Directory,如何为电子邮件管理器创建新文件夹,我有此代码,但不起作用 void create_folder() { int check; char * dirname; clrscr(); printf("Enter a directory path and name to create a folder (C:/name):"); gets(dirname); check = mkdir(dirname); if (!check) printf("F

如何为电子邮件管理器创建新文件夹,我有此代码,但不起作用

 void create_folder() {
   int check;
   char * dirname;
   clrscr();
   printf("Enter a directory path and name to create a folder (C:/name):");
   gets(dirname);
   check = mkdir(dirname);

   if (!check)
     printf("Folder created\n");

   else {
     printf("Unable to create folder\n");
     exit(1);
   }
   getch();
   system("dir/p");
   getch();
 }
使用以下命令:

 void create_folder() {
   int check;
   char dirname[128];
   clrscr();
   printf("Enter a directory path and name to create a folder (C:/name):");
   fgets(dirname, sizeof(dirname), stdin);
   check = mkdir(dirname);

   if (!check)
     printf("Folder created\n");

   else {
     printf("Unable to create folder\n");
     exit(1);
   }
   getch();
   system("dir/p");
   getch();
 }

您的dirname字符串未分配,请改用char数组。

您必须为
dirname
分配内存

#include<stdio.h>
#include<conio.h>
#include<process.h>
#include<stdlib.h>
#include<dir.h>

#define SIZE 25      //Maximum Length of name of folder

void main() {
    int check;
    char *dirname;
    dirname=malloc(SIZE*sizeof(char));
    printf("Enter a directory path and name to be created (C:/name):");
    gets(dirname);
    check = mkdir(dirname);

    if (!check)
        printf("Directory created\n");

    else
    {
        printf("Unable to create directory\n");
        exit(1);  
    } 
    getch();
    system("dir/p");
    getch();
    }
#包括
#包括
#包括
#包括
#包括
#定义大小25//文件夹名称的最大长度
void main(){
整数检查;
char*dirname;
dirname=malloc(SIZE*sizeof(char));
printf(“输入要创建的目录路径和名称(C:/name):”;
获取(dirname);
check=mkdir(dirname);
如果(!检查)
printf(“创建的目录”);
其他的
{
printf(“无法创建目录\n”);
出口(1);
} 
getch();
系统(“dir/p”);
getch();
}
我从以下位置复制:


好像不管用怎么了?编译器错误?撞车?计算机着火了?您从未为指向的
dirname
分配过任何内存,因此在
get(dirname)
中有未定义的行为。另外,
gets()
已被弃用,请停止使用它。您在windows中工作,对吗?使用
windows中的
CreateDirectory
。h
dirname
未初始化。另外,不要使用
get
,这是一个过时且危险的函数。您忘了释放使用malloc fo dirname分配的内存
void make_directory(const char* name) {
   #ifdef __linux__
       mkdir(name, 777); 
   #else
       _mkdir(name);
   #endif
}