Azure storage files AzureStorage CloudFileDirectory.ListFilesandDirectory毫无价值?

Azure storage files AzureStorage CloudFileDirectory.ListFilesandDirectory毫无价值?,azure-storage-files,Azure Storage Files,到目前为止,我在CloudFileDirectory上获得了一个句柄,调用此方法会给我一个IListFileItem对象列表,给定CloudFileDirectory中的每个文件和目录都有一个句柄,但我很难区分哪些是文件,哪些是目录 IListFileItem上可用的属性包括Uri,这是一个System.Uri对象,它有一个isFile成员,但对于我的文件和我的目录,它显示为false 我需要得到我可以钻取的目录列表,我可以使用的文件列表,但到目前为止,我找不到一种方法来过滤这个混合列表 我想不

到目前为止,我在
CloudFileDirectory
上获得了一个句柄,调用此方法会给我一个
IListFileItem
对象列表,给定
CloudFileDirectory
中的每个文件和目录都有一个句柄,但我很难区分哪些是文件,哪些是目录

IListFileItem
上可用的属性包括
Uri
,这是一个
System.Uri
对象,它有一个
isFile
成员,但对于我的文件我的目录,它显示为false

我需要得到我可以钻取的目录列表,我可以使用的文件列表,但到目前为止,我找不到一种方法来过滤这个混合列表


我想不出混合列表有什么值得使用的。我想知道为什么M$没有将
列表文件
列表目录
作为单独的方法公开。也许他们很难区分它们,于是放弃了。

我在这里找到了答案将Azure文件预览与存储客户端库一起使用

将收到的
IListFileItem
强制转换为
CloudFile
仅适用于文件,否则将导致
null
,并将其强制转换为
CloudFileDirectory
仅适用于目录

我最终使用了Linq

var azureDirectories = myShare.GetRootDirectoryReference()
    .GetDirectoryReference(myPath)
    .ListFilesAndDirectories()
    .OfType<CloudFileDirectory>();

var azureFiles = myShare.GetRootDirectoryReference()
    .GetDirectoryReference(myPath)
    .ListFilesAndDirectories()
    .OfType<CloudFile>();
var azureDirectories=myShare.GetRootDirectoryReference()
.GetDirectoryReference(myPath)
.ListFilesAndDirectories()
.of type();
var azureFiles=myShare.GetRootDirectoryReference()
.GetDirectoryReference(myPath)
.ListFilesAndDirectories()
.of type();

为了防止目录再次列出,您还可以执行以下操作:

CloudFileDirectory rootDir=myShare.GetRootDirectoryReference();
//获取目录项一次
IEnumerable azureItems=rootDir.ListFilesAndDirectories();
CloudFileDirectory AzureDirectory=azureItems.OfType();
CloudFile azureFiles=azureItems.OfType();

这不是仍在枚举两次吗?因为类型为
的每个
都调用了
GetEnumerator()
?如果没有缓存机制,则更能防止两次联机调用。防止这样做两次:
myShare.GetRootDirectoryReference().GetDirectoryReference(myPath.ListFilesAndDirectories()