【问题标题】:how to create folders using mkdir in c?如何在 c 中使用 mkdir 创建文件夹?
【发布时间】:2019-05-05 03:12:03
【问题描述】:

我正在尝试在 C 中使用 mkdir 创建一个文件夹,但它不起作用

代码不会创建文件夹

#include <sys/stat.h>
#include <sys/types.h>
#include <stdio.h>
#include <string.h>

int main (){
    char chemin[256];
    char name[20];
    //char fichier[100];                                                        
//  FILE *fp;                                                                   
    strcpy(chemin,"/home/Deva/Documents/prog/C/la/sds");

    mkdir(chemin,0755);
    if (mkdir(chemin,0755)==-1){
        printf("\nERROR\n");
    } else { printf("fichier creer"); }
}

【问题讨论】:

  • 您实际上是在调用“mkdir”函数两次。您是否在运行代码后查看目录是否存在?它可能第二次失败,因为它已经存在。如果这不是问题,请查看“perror”,它应该为您提供有关您遇到的错误的更多信息。

标签: c mkdir


【解决方案1】:

两件事:

1) 您需要先创建中间目录。

2) 你不能创建一个目录两次,你在这里做:

mkdir(chemin,0755);
if (mkdir(chemin,0755)==-1){

【讨论】:

  • 是的,if(chemin, 0755) {...} 会做得很好
  • @JennyT-Type 说什么?无论如何,这总是会返回 true。
  • @oops,我的意思是 if(mkdir(chemin, 0755) == -1){...} 是我不是在我应该复制/粘贴的时候。我应该删除第一次尝试吗?我的意思是不要传播错误信息,
【解决方案2】:

您传递的 PATH 不仅仅是目录名称。 所以请检查下面的帖子会有所帮助

Recursive mkdir() system call on Unix

【讨论】:

    【解决方案3】:

    您必须先创建中间目录:例如在创建/home/Deva/Documents等之前必须先创建/home/Deva。

    【讨论】:

      猜你喜欢
      • 2020-06-08
      • 1970-01-01
      • 2010-11-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-30
      • 2013-06-29
      相关资源
      最近更新 更多