2012-10-15 31 views
9

Azure blob deposundaki dosyalara sahip olduğum bir listeden karşılaştırmalıyım, ihtiyacım olan tek kısım, o blobdaki dosyaları. Tüm dosyaları bir masmavi gökgürültüsünden almanın bir yolu var mı

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

listemden ile blob dosyaları karşılaştırmak

Örneğin

için

, benim listesinde eşleşme sahip dosyaları silmek istiyorum.

cevap

20

Sen CloudBlobContainer.ListBlobs() ya sen blobItem.Uri gelen dosya adını ayrıştırmak gerekir CloudBlobDirectory.ListBlobs()

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); 
} 

ile bir dizin içindeki bir kapta lekeler listesini alabilirsiniz, ama o zaman hariç LINQ en kullanabilirsiniz() metodu farkını bulmak için:

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

yourList değil fromAzure listesinde her şeyi dönecektir.

Ve son olarak ben bu yapının kabı/klasor1/klasor2/folder3/myfile.txt var this example

+0

ile blob'ları silebilirsiniz. Container.ListBlobs yalnızca klasör1'e döner. Tüm dosyaları almak için klasör 3'te bir yol var mı? –

İlgili konular