【发布时间】:2020-08-17 05:01:48
【问题描述】:
我正在尝试列出以特定路径和文件名开头的所有 blob。
我有这个路径:"files/folder1/folder2/abcdef"
这些文件存在
`"files/folder1/folder2/abcdef_100_100.jpg"`
`"files/folder1/folder2/abcdef_200_200.jpg"`
`"files/folder1/folder2/abcdef_800_600.jpg"`
请注意,它们都以相同的开头,只是文件名的结尾不同。我不知道有什么结局,只是很可能不止一个。
对于具有完整路径的单个文件,此代码效果很好。
CloudBlockBlob cloudBlockBlob = _blobContainer.GetBlockBlobReference(fileName);
到目前为止,我已经尝试使用以下代码获取所有与文件名和文件名开头匹配的文件,但失败了:
var imageFiles = _blobContainer.ListBlobs(startingPath, true, BlobListingDetails.None);
和
var blobDirectory = _blobContainer.GetDirectoryReference(startingPath);
var imageFiles = blobDirectory .ListBlobs();
这两个都返回一个空结果。
我应该如何做到这一点?
附:数据不得在客户端过滤。将有数千个文件。
P.P.S 如果我必须过滤最后一个文件夹 (folder2) 的内容,那该级别的每个文件夹中的文件将少于 100 个。
更新 1 这也不起作用。
// returns files/folder1/folder2
var dirPath = System.IO.Path.GetDirectoryName(startingPath);
var ss = _blobContainer.GetDirectoryReference(dirPath);
var imageFiles = ss.ListBlobs();
【问题讨论】:
-
如果将
startingPath设置为仅包含files/folder1/folder2/会怎样?有用吗?