我在创建文件夹并写入文件时遇到了问题。
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
。
答案 0 :(得分: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);
}
这将按预期工作。
答案 1 :(得分:2)
如果文件夹不存在,请尝试使用此代码创建文件夹:
<?php
if (file_exists('path/to/directory')) {
echo "Folder Already Exists";
}
else{
mkdir('path/to/directory', 0777, true);
echo "folder Created";
}
?>