【问题标题】:Creating numeric directories in C在 C 中创建数字目录
【发布时间】:2015-01-08 17:17:06
【问题描述】:

我正在尝试在 C 中创建一组数字目录。但不起作用...我希望看到:

\Directory 0
\Directory 1
.
.
.
\Directory 99

#include <stdio.h>
#include <stdlib.h>

#include <conio.h>
#include <sys/stat.h>

int main(void)
{
    char istring[80];

    for (n = 0; n < 100; n++)
    {
        sprintf(istring, "Directory %i", n);
        mkdir(istring);
    }
} 

是的,我知道该目录将/应该在本地创建,但事实并非如此。我也在c盘搜索了“\Directory n”目录,但是没有。

使用:

sprintf(istring, "\\Directory %i", n);

不在根目录中创建目录。

为了检查权限,我试过这个:

mkdir("Directory n");

创建本地目录\Directory n。所以我假设我有足够的特权。

还有其他想法吗?

【问题讨论】:

  • 为什么不起作用?
  • 您是否尝试过在 IDE 的调试器中设置断点和单步执行?您是否检查了您调用的系统函数的返回值?例如 mkdri() 返回一些非常具体的信息,说明它失败的原因 - 它可能比我们能告诉你的更多;-) 对于 GNU,请参阅gnu.org/software/libc/manual/html_node/…,对于其他人,例如 Windows,请参阅您的相关文档
  • 无法重现。您的程序无法编译(IMO 使整个问题无效),但是在修复了明显的错误之后,它可以按您的意图工作,并且我在运行它的文件夹中获得了 100 个新文件夹。
  • 对不起,这是我的第一篇文章。我将确保我只发布一个我编译了代码的问题,而不仅仅是一点点。对不起。 R
  • 嗯,让它正常工作后是否工作?它对我有用,所以你的问题是“不可重现的”。

标签: c numeric


【解决方案1】:

您没有指定绝对路径。您编写程序的方式将在运行它的路径中创建目录。

如果您想在根路径中创建目录,则必须将其更改为:

sprintf(istring, "\\Directory %i", n);

但您很可能需要提升权限才能执行此操作。

很可能您没有在正确的路径中寻找创建的目录..

【讨论】:

  • 是的,我知道该目录将在本地创建(.exe 所在的位置)。
  • @Rowlandski 不是 exe 所在的位置,它是从哪里运行的。 cwd a.k.a. $PWD ... 使用 getcwd()。
猜你喜欢
  • 2015-09-05
  • 2012-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-02-14
  • 2021-09-07
  • 2014-08-27
  • 1970-01-01
相关资源
最近更新 更多