有没有办法从一团天蓝色的地方获取所有文件

时间:2012-10-15 18:49:10

标签: c# azure blob

我需要从我所拥有的列表与azure的blob存储中的文件进行比较,我需要的唯一部分是获取该blob中文件列表的方法。

例如

blob azureImages
files:
name
something.jpg
asd.jpg
iwda.jpg
my list:
name
something.jpg
asd.jpg

当我将blob中的文件与我的列表进行比较时,我想删除列表中没有匹配的文件。

1 个答案:

答案 0 :(得分:22)

您可以使用CloudBlobContainer.ListBlobs()或在CloudBlobDirectory.ListBlobs()的目录中获取blob列表

CloudBlobClient blobClient = new CloudBlobClient(blobEndpoint, new StorageCredentialsAccountAndKey(accountName, accountKey));

//Get a reference to the container.
CloudBlobContainer container = blobClient.GetContainerReference("container");

//List blobs and directories in this container
var blobs = container.ListBlobs();

foreach (var blobItem in blobs)
{
    Console.WriteLine(blobItem.Uri);
}

你需要从blobItem.Uri解析文件名,但是你可以使用LINQ的Except()方法来找出差异:

public string FindFilesToDelete(IEnumerable<string> fromAzure, IEnumerable<string> yourList)
{
     return fromAzure.Except(yourList);
}

将返回fromAzure列表中不在yourList中的所有内容。

最后,您可以使用this example

删除blob