我正在关注在php中创建新文件的指南,我正在使用以下代码:
function create($user, $name) {
/* Later on, this will connect to another server*/
$dir = $user->getFolder() . "/Projects/". $name;
if(file_exists($dir)) {
$this->error = "Directory: " . $dir . " already exists.";
} else {
mkdir($dir);
//Create the users.json file and add the owner
$json = fopen($dir . "/Data/users.txt", "w") or die("Cannot open file");
fclose($json);
}
}

目录已创建但我收到以下错误:"警告:fopen(Jake / UserFolder // Projects / test / Data / users.txt):无法打开流:D中没有此类文件或目录:第14行:\ xampp \ htdocs \ Collabs \ Objects \ Scripts \ Project.php 无法打开文件"
答案 0 :(得分:1)
您的错误中显示的路径看起来可能是问题所在。
杰克/ UserFolder //项目/测试/数据/ users.txt
UserFolder和Projects之间有两个斜杠。看起来将代码更改为
$dir = $user->getFolder() . "Projects/". $name;
将摆脱额外的斜线。
答案 1 :(得分:0)
可能出现的一些问题:
/
传递路径,因此fopen()
将相对搜索脚本正在执行的目录。我假设您要传递绝对路径file_exists()
,您还应检查is_dir()
,以捕获并处理已存在具有相同路径的文件的情况mkdir($dir, 077, true)
来创建
中间目录(见mkdir() documentation)