我有代码将容器的 blob 和文件夹列出到 asp.net listBox。双击作为文件夹的列表项时,文件夹的内容将转到列表框。问题是,这不适用于第一层之后的任何文件夹,并且列表框变为空。
我的论点是,我的代码所引用的目录位于容器内,并且由于子文件夹不直接位于容器内,因此无法识别它并且列表框显示为空。
protected void Page_Load(object sender, EventArgs e)
{
if (Request["__EVENTARGUMENT"] != null && Request["__EVENTARGUMENT"] == "expand")
{
List<string> ListBlobsInFolder()
{
List<string> blobs = new List<string>();
CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse("MYCONNECTIONSTRING");
CloudBlobClient cloudBlobClient = cloudStorageAccount.CreateCloudBlobClient();
CloudBlobContainer container = cloudBlobClient.GetContainerReference("testcontainer");
ListItem listItem = lboxLogs.SelectedItem;
CloudBlobDirectory directory = container.GetDirectoryReference(listItem.ToString());
IEnumerable<IListBlobItem> blobList = directory.ListBlobs();
foreach (IListBlobItem item in blobList)
{
blobs.Add(string.Format("{0}", item.Uri.Segments.Last()));
}
return blobs;
//IEnumerable<IListBlobItem> subDirectoryList = subDirectory.ListBlobs();
}
我不确定如何解决这个问题,这样当我双击时,目录引用将在必要时来自容器内,并在必要时在另一个文件夹内。
慕容森
相关分类