【问题标题】:Can't create dir with slash in dir name无法在目录名称中创建带有斜线的目录
【发布时间】:2025-11-25 01:20:04
【问题描述】:

在 mac os x 上使用 php 7,如果文件夹名称中有斜杠,我无法使用 php mkdir() 创建文件夹,例如Test 24/04/2015.

这是我的 PHP 代码:

$FolderPath = readline("Insert Folder Path "); // I enter /Users/me/Test 24/04/2015
echo "You have entered: " . $FolderPath;
echo "\n";
echo "\n";

$FolderPathResized = $FolderPath . "/Resized";

if (file_exists($FolderPathResized)) {
    echo "The folder $FolderPathResized exists";
    echo "\n";
}else {
    mkdir($FolderPathResized);
}

我得到的错误是:

mkdir(): No such file or directory in

在这种情况下如何使用mkdir()?我的文件夹将始终在文件夹名称中使用斜线分隔日期。

【问题讨论】:

  • 你甚至不能手动创建这样的目录名。见this
  • 即使:那将是一个真的坏主意:你想以后如何使用它?

标签: php


【解决方案1】:

您不能创建包含/ 的目录名称。使用_ 会更好地分隔日期。

这可以通过使用函数str_replace() 将您的日期中的所有/ 替换为_ 来完成。

显示错误是因为它捕获了第一个 / 并尝试将其写入这样的目录中,但它不存在。您必须将其用引号括起来才能首先阅读。

【讨论】:

  • 这不是一个真正的答案。应该是评论。
  • 他问在这种情况下如何使用 mkdir()。在这种情况下,他唯一可以使用的方法就是将所有_替换为/,以防止它被读取为根目录。他的错误显然表明它是从根目录读取的。
  • 我只说:这没有回答问题。而且也许您需要最低声誉才能发表评论是有原因的......
  • 他的问题是,当他的日期以斜线分隔时,他如何使用 mkdir()。我对此的回答是将所有 / 替换为 _ ,这怎么不是他问题的答案?
  • 它没有达到 OP 的要求。
【解决方案2】:

您可能已经找到了答案,因为这个问题已有 4 年历史了,但是如果您想创建一个名称中带有斜杠的文件夹,您可以这样做:

mkdir My\:Folder

它将创建一个名称为“My/Folder”的文件夹

希望它可以帮助某人:)

【讨论】:

    最近更新 更多