Ich arbeite an einem Projekt, das die Daten von einem Azure Blob liest und diese Daten in einem Objekt speichert. Ich stoße gerade auf ein Problem. Die Art, wie mein Code jetzt eingerichtet ist - er liest alle .txt-Daten in einem Container, wenn keine virtuellen Ordner vorhanden sind.Wie kann ich feststellen, ob Azure Container über virtuelle Ordner/Verzeichnisse verfügt?
Wenn jedoch eine virtuelle Ordnerstruktur in einem Azure Container vorhanden ist, wird mein Code mit einer NullExceptionReference
Fehler aus. Meine Idee war, eine if
Prüfung zu machen, um zu sehen, ob es virtuelle Ordner innerhalb eines Azure Containers gab, wenn das so ausgeführt wurde //some code
. Gibt es eine Möglichkeit zu sagen, ob ein virtueller Ordner vorhanden ist?
ReturnBlobObject()
private List<Blob> ReturnBlobObject(O365 o365)
{
List<Blob> listResult = new List<Blob>();
string textToFindPattern = "(\\/)";
string fileName = null;
string content = null;
//Loop through all Blobs and split the container form the file name.
foreach (var blobItem in o365.Container.ListBlobs(useFlatBlobListing: true))
{
string containerAndFileName = blobItem.Parent.Uri.MakeRelativeUri(blobItem.Uri).ToString();
string[] subString = Regex.Split(containerAndFileName, textToFindPattern);
//subString[2] is the name of the file.
fileName = subString[2];
content = ReadFromBlobStream(o365.Container.GetBlobReference(subString[2]));
Blob blobObject = new Blob(fileName, content);
listResult.Add(blobObject);
}
return listResult;
}
ReadFromBlobStream
private string ReadFromBlobStream(CloudBlob blob)
{
Stream stream = blob.OpenRead();
using (StreamReader reader = new StreamReader(stream))
{
return reader.ReadToEnd();
}
}