如何用Flysystem获取WEBDAV目录下的文件列表?

How to get the list of files in the WEBDAV directory with Flysystem?

我在 Whosebug 上找到了 similar question,但没有人回答。

所以我正在尝试使用 laravel-flysystem framework that is based on Flysystem. I did everything according to manual and everything is working perfectly except one function - listContents() 从 WEBDAV 云存储中获取文件列表。

这是我的代码示例

var_dump(Flysystem::read('/test/test.txt'));
var_dump(Flysystem::listContents('/test/'));

此代码 return 如下:

string(4) "123"
array(0) {
}

我在 test/ 目录中有 test.txt 文件和 return 的 read() 函数它是内容,但 listContents() 函数不 return 文件。

有人可以解释一下如何从目录中获取文件列表吗?谢谢

所以现在作为临时解决方案,我不得不更改供应商中的代码。一个糟糕的决定,但我暂时不打算在这个项目中使用作曲家,只是为了再保险,我将 league/flysystem 的版本锁定在 composer.json

作为解决方案,我去了 vendor/league/flysystem/src/Util/ContentListingFormatter.php (它存在于 shure 的 league/flysystem 的 1.0.57 版本中)。在函数 isDirectChild() 中,您需要 return true; 。这样你将从你的 webdav 目录中得到一个实际文件的数组,而不是一个空数组。

我真的希望有一天能修复这个错误。