我有一个名为systemdesign
的容器,它有几个子文件夹,例如dfd
usecase
和其他UML设计工具名称。我想要显示特定"文件夹的图像"例如dfd,而不是在此容器中找到的所有图像。
下面是一些截图,以及围绕此部分的部分代码。请不要介意那些只是测试数据的图像的性质。
http://i.imgur.com/fVs1SZk.png [显示所有内容而不是容器]
编辑:例如在文件夹dfd
中应该只有一张图片,第二个文件夹应该是另一张图片。
http://i.imgur.com/kMyBLca.png [我的"目录"分段]
影响上述内容的代码:
SystemDesignController
// GET: SystemDesign
public ActionResult Index()
{
StorageCredentials credentials = new StorageCredentials(storagename, accountkey);
CloudStorageAccount storageAccount = new CloudStorageAccount(credentials, true);
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer storageContainer = blobClient.GetContainerReference("systemdesign");
Models.SystemDesignModel blobsList = new Models.SystemDesignModel(storageContainer.ListBlobs(useFlatBlobListing: true));
return View(blobsList);
}
SystemDesignModel.cs //此类包含模型,最终在视图中用于显示图像
public class SystemDesignModel
{
public SystemDesignModel() : this(null)
{
Files = new List<SystemDesign>();
}
public SystemDesignModel(IEnumerable<IListBlobItem> list)
{
Files = new List<SystemDesign>();
if (list != null && list.Count<IListBlobItem>() > 0)
{
foreach (var item in list)
{
SystemDesign info = SystemDesign.CreateImageFromIListBlob(item);
if (info != null)
{
Files.Add(info);
}
}
}
else
{
}
}
public List<SystemDesign> Files { get; set; }
}
index.cshtml 部分代码对于影响此内容的视图
@foreach (var item in Model.Files)
{
<a href="@item.URL"><img src="@item.URL" height="128" width="128"/></a>
}
我现在尝试做的事情:
1)我尝试将CloudBlobContainer storageContainer = blobClient.GetContainerReference("systemdesign");
从systemdesign
更改为dfd
,但如果条件
SystemDesignModel.cs
中向我发出404和storageException
2)尝试将useFlatBlobListing
作为false
,但不输出任何内容。
知道如何根据我想要的部分输出一个文件夹吗?
由于
答案 0 :(得分:2)
在容器中列出blob时,您可以传递blob prefix
,它基本上是文件夹的名称(在您的示例中为dfd,usecase等)。然后你只会看到该文件夹中的blob。以下是文档的链接:https://msdn.microsoft.com/en-us/library/microsoft.windowsazure.storage.blob.cloudblobcontainer.listblobs.aspx。