正在设置日志目录



如果还没有创建新文件夹,我想创建一个新文件夹。为了做到这一点,我写道:

//Set up the log directory
if(is_dir(dirname(LOG_PATH))) {
} else {
    mkdir(LOG_PATH, 0777, true);
    echo "Directory created. ". LOG_PATH ."<br />";
}

LOG_PATH=E:\examplep\htdocs\photo\logs\

有一个照片文件夹,但没有日志文件夹(我想创建那个文件夹)。

我是不是遗漏了什么,因为这里的if语句是真的。不应该是。

dirname(LOG_PATH)返回LOG_PATHE:xampphtdocsphoto)的父级,因此当photo文件夹存在时,if语句为true,而当logs文件夹存在时为true。

您应该将条件修改为:

if (is_dir(LOG_PATH)) {
} else {
    mkdir(LOG_PATH, 0777, true);
    echo "Directory created. ". LOG_PATH ."<br />";
}

而且,如果你让第一个分支为空,只需否定条件:

if (!is_dir(LOG_PATH)) {
    mkdir(LOG_PATH, 0777, true);
    echo "Directory created. ". LOG_PATH ."<br />";
}

顺便说一句,如果你没有在那里创建新文件夹的权限,mkdir调用可能会失败,所以你应该检查一下是否失败:

if (!is_dir(LOG_PATH)) {
    if (mkdir(LOG_PATH, 0777, true)) {
        echo "Directory created. ". LOG_PATH ."<br />";
    } else {
        throw new Exception("Can't create folder " . LOG_PATH);
    }
}

当路径包含正斜杠。带有正向斜杠的路径部分没有创建。

mkdir('c:/a/b/c/d',0775,true);

您将收到错误消息:警告:mkdir()[function.mkdir]:没有这样的文件或目录

请在Windows下使用反斜杠或使用常量DIRECTORY_SEPARATOR。

mkdir('c:\a\b\c\d',0775,true);mkdir('c:'.DIRECTORY_SEPARATOR.a'。DIRECTORY_SEPARATOR。'b’。DIRECTORY_SEPARATOR。'c’。DIRECTORY_SEPARATOR。'd',0775,true);

相关内容

  • 没有找到相关文章

最新更新