0

我无法创建文件夹并写入其中。

if(file_exists("helloFolder") || is_dir("helloFolder")){
    echo "folder already exists";
} else {
    echo "no folder, creating";
    mkdir("helloFolder", 0755);
}

"no folder, creating"即使文件夹已经存在,这也会返回。然后我得到这个错误:

Warning:  mkdir() [function.mkdir]: No such file or directory in script.php on line 18

警告:file_put_contents(/filename.txt) [function.file-put-contents]:打开流失败:第 58 行 script.php 中的权限被拒绝

非常奇怪的是,我调用了三个单独的脚本来执行此操作,而一个总是有效的,而另外两个总是给出这个错误。我正在同步调用脚本,所以我认为没有任何重叠发生。他们之间的其他一切都是一样的。都有权限644,所有文件夹都有权限755

4

2 回答 2

4

首先,在使用 FileSystem 时应该坚持绝对的补丁,还有两个小缺陷:

  • is_dir()- 检查文件是否存在及其目录。因此file_exists()有点多余。

  • 如果您在其他任何地方使用相同的字符串,最好将其值保存在变量中。

最后,您的代码应如下所示,

$target = dirname(__FILE__) . '/hellodir';

if (is_dir($target)) {

    echo "folder already exists";

} else {

    echo "no folder, creating";
    // The 3-rd bool param includes recursion
    mkdir($target, 0777, true);
}

这将按预期工作。

于 2013-10-02T10:48:31.683 回答
2

如果文件夹不存在,请尝试使用此代码创建文件夹:

<?php 

if (file_exists('path/to/directory')) {
    echo "Folder Already Exists";
}
else{
    mkdir('path/to/directory', 0777, true);
    echo "folder Created";
}
?>
于 2013-10-02T10:26:04.667 回答