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()