Obtenir la liste des noms des fichiers blob Azure dans un conteneur?
j'ai besoin d'énumérer les noms des fichiers Azure Blob. Actuellement, je suis en mesure de lister tous les fichiers avec URL, mais j'ai juste besoin de la liste des noms. Je veux éviter de l'analyse des noms. Pouvez-vous voir mon code et guide ci-dessous:
CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(blobConectionString);
var backupBlobClient = backupStorageAccount.CreateCloudBlobClient();
var backupContainer = backupBlobClient.GetContainerReference(container);
var list = backupContainer.ListBlobs();
20
demandé sur
abatishchev
2014-05-06 07:31:42
5 réponses
si vous utilisez Windows Azure Storage 4.3.0 , essayez ce code.
List<string> blobNames = list.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
27
répondu
feltocraig
2014-11-14 15:50:03
Voici une autre façon de le faire:
CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(blobConectionString);
var backupBlobClient = backupStorageAccount.CreateCloudBlobClient();
var backupContainer = backupBlobClient.GetContainerReference(container);
// useFlatBlobListing is true to ensure loading all files in
// virtual blob sub-folders as a plain list
var list = backupContainer.ListBlobs(useFlatBlobListing: true);
var listOfFileNames = new List<string>();
foreach (var blob in blobs) {
var blobFileName = blob.Uri.Segments.Last();
listOfFileNames.Add(blobFileName);
}
return listOfFileNames;
Source: comment charger récursivement des fichiers Blob D'Azur?
13
répondu
mik-t
2017-05-23 11:54:47
réponse complète avec détails.
// Parse the connection string and return a reference to the storage account.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("AzureBlobConnectionString"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
// Retrieve reference to a previously created container.
CloudBlobContainer container = blobClient.GetContainerReference("container_name");
// Retrieve reference to a blob named "test.csv"
CloudBlockBlob blockBlob = container.GetBlockBlobReference("BlobName.tex");
//Gets List of Blobs
var list = container.ListBlobs();
List<string> blobNames = list.OfType<CloudBlockBlob>().Select(b => b.Name).ToList();
4
répondu
Apollo
2018-02-20 16:02:36
nous pouvons obtenir des informations supplémentaires comme Taille, Date de modification et nom .
CloudStorageAccount backupStorageAccount = CloudStorageAccount.Parse(YOUR_CON_STRING);
var backupBlobClient = backupStorageAccount.CreateCloudBlobClient();
var backupContainer = backupBlobClient.GetContainerReference("CONTAINER");
var blobs = backupContainer.ListBlobs().OfType<CloudBlockBlob>().ToList();
foreach (var blob in blobs)
{
string bName = blob.Name;
long bSize = blob.Properties.Length;
string bModifiedOn = blob.Properties.LastModified.ToString();
}
vous pouvez Aussi télécharger un fichier spécifique par Nom.
// Download file by Name
string fileName = "Your_file_name";
CloudBlockBlob blobFile = backupContainer.GetBlockBlobReference(fileName);
blobFile.DownloadToFile(@"d:\"+ fileName, System.IO.FileMode.Create);
3
répondu
Vignesh Raja
2018-03-07 21:41:00
vous pouvez accéder au BlobProperties
pour obtenir le nom:
foreach (object o in list)
{
BlobProperties bp = o as BlobProperties;
if (bp != null)
{
BlobProperties p = _Container.GetBlobProperties(bp.Name);
var name = p.Name; // get the name
}
}
2
répondu
Brendan Green
2014-05-06 03:43:27