我开始为nextcloud编写应用程序。为了使我的应用正常运行,我需要能够将登录用户的文件目录中文件的完整路径传递给CLI命令。
我知道文件目录的基本路径是在config.php中定义的;例如,它是“ var / www / html / nextcloud”或“ var / www / nextcloud”。
我发现了几个可以让我获得相对路径的函数,例如
\OC\Files\Filesystem::getFileInfo($path)
和
\OC\Files\Filesystem::getInternalPath($path)
不幸的是,我找不到直接返回文件的完整路径或至少从config.php返回基本路径的函数。
你们有没有给我的小费?
答案 0 :(得分:0)
谢谢您的帮助,悲哀!
与此同时,我找到了解决方案:
Nextcloud中有一个类\OC\Config
,其类具有方法OC\Config::getValue($key, $default=null)
(请参阅https://docs.nextcloud.com/server/latest/developer_manual/api/OC/Config.html)
我遇到的困难是类实例的初始化需要指定路径,即config.php文件所在的路径。
起初这让我很恼火,因为看来您在这里追逐自己的尾巴。
然后,我尝试仅指定Nextcloud安装的相对路径,并且该路径立即生效。因此,简而言之,这是您需要的代码:
$config = new \OC\Config('config/');
$base_path = $config->getValue('datadirectory')
数据目录是config.php中定义的包含基本目录的数组中的键。
$basepath
现在包含类似/var/www/html/nextcloud/data
的路径。
我希望这对某人有帮助。
最好的问候, 汤姆