PHP:使用fopen创建文件夹

37

我需要知道是否有任何方法可以在路径不存在的情况下创建新文件夹。当我尝试用fopen()打开路径时,它会显示没有这样的文件或目录存在。我尝试使用'w'和'w+'打开文件,但无法创建新文件夹。有没有不使用mkdir()就能实现的方法?因为我每次都需要从路径中提取目录名来创建文件夹。感谢任何帮助。

3个回答

100

fopen无法创建目录。

你需要使用类似于以下方式的东西:

$filename = '/path/to/some/file.txt';
$dirname = dirname($filename);
if (!is_dir($dirname))
{
    mkdir($dirname, 0755, true);
}

9

fopen不会创建或打开文件夹,只能创建文件。您应该首先使用is_dir检查它是否存在,如果不存在则创建它。mkdir有一个递归创建选项。

if (!is_dir($myDir)) {
    mkdir($myDir, 0777, true); // true for recursive create
}

如果您正在寻找打开目录并读取其内容的方法,您应该查看SPL的DirectoryIterator


4

你不能使用fopen创建文件夹。
要创建文件夹,必须使用mkdir。

对于需要重复执行的操作,有一种语言特性称为“用户自定义函数”。可以说是PHP最不为人知的功能之一,根据stackoverflow答案判断。


3
针对需要重复执行的操作,有一种编程语言特性称为“用户自定义函数”。PHP 中最不为人所知的功能,以 stackoverflow 上的回答可见:LOL。 - nkkollaw

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接