我的模型中有以下功能:
public function createfolder($location, $name){
define('NET_SFTP_LOGGING', NET_SFTP_LOG_COMPLEX);
$sftp = new Net_SFTP('xx.xxx.xx.xx');
if (!$sftp->login('admin', '********')) {
exit('Login Failed');
}
//moves to a location (Job folder for example)
$sftp->chdir($location);
//makes the folder
$sftp->mkdir($name);
}
这会有效,但我想添加某种错误预防验证,如何使用SFTP检查文件夹是否存在?
想想我想出了一个解决方案:
“chdir()更改目录,mkdir()创建目录,rmdir()删除目录。如果失败,它们都返回false.chdir(),mkdir()和rmdir()返回成功完成操作后为true。“
所以我可以使用if语句检查chdir()===是或否,以查看目录是否存在。
答案 0 :(得分:1)
我认为您的解决方案很好。
从理论上讲,你也可以做$sftp->stat('filename')['permissions'] & 0170000 == 0040000
这样的事情。这是从phpseclib本身借来的黑客:
答案 1 :(得分:0)
您可以使用$sftp->is_dir($location)
检查它是否是目录。