如果尚未创建新文件夹,我想创建一个新文件夹。为了做到这一点,我写道:
//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:\ xampp \ htdocs \ photo \ logs \
有一个照片文件夹,但没有日志文件夹(我想创建该文件夹)。
我错过了什么,因为这里的if语句是真的。它不应该是。
答案 0 :(得分:1)
dirname(LOG_PATH)
返回LOG_PATH
(E:\xampp\htdocs\photo
)的父级,因此当if
文件夹存在时,photo
语句为真,而不是logs
{1}}文件夹存在。
您应该将条件修改为:
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);
}
}
答案 1 :(得分:0)
路径时,'mkdir'功能在Windows上无法正常运行 包含正斜杠。带正斜线的路径部分 没有被创造。
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);