【问题标题】:PHPseclib STFP check directory existsPHPseclib STFP 检查目录是否存在
【发布时间】:2014-03-19 09:54:07
【问题描述】:

我的模型中有以下功能:

    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() === true 还是 false 以查看目录是否存在。

【问题讨论】:

    标签: php codeigniter phpseclib


    【解决方案1】:

    您可以使用$sftp->is_dir($location) 来检查它是否是一个目录。

    【讨论】:

      【解决方案2】:

      我认为你的解决方案很好。

      我认为理论上你也可以做类似$sftp->stat('filename')['permissions'] & 0170000 == 0040000 的事情。这是从 phpseclib 本身借来的 hack:

      https://github.com/phpseclib/phpseclib/blob/7a2c7a414c08d28f0700c7f6f8686a9e0e246a44/phpseclib/Net/SFTP.php#L1969

      【讨论】:

        猜你喜欢
        • 2013-05-19
        • 2012-09-12
        • 1970-01-01
        • 2011-02-15
        • 2017-07-14
        • 2010-11-23
        • 2015-04-29
        相关资源
        最近更新 更多