+ /**
+ * Gets the ssh2.sftp PHP stream wrapper path to open for the given file.
+ *
+ * This method also works around a PHP bug where the root directory (/) cannot
+ * be opened by PHP functions, causing a false failure. In order to work around
+ * this, the path is converted to /./ which is semantically the same as /
+ * See https://bugs.php.net/bug.php?id=64169 for more details.
+ *
+ * @access public
+ *
+ * @since 4.4.0
+ *
+ * @param string $path The File/Directory path on the remote server to return
+ * @return string The ssh2.sftp:// wrapped path to use.
+ */
+ public function sftp_path( $path ) {
+ if ( '/' === $path ) {
+ $path = '/./';
+ }
+ return 'ssh2.sftp://' . $this->sftp_link . '/' . ltrim( $path, '/' );
+ }