2017-03-13 2 views
1

Ich versuche, eine Ordnerstruktur in azurDateiFreigabe zu erstellen. Ich mache das von einer Web-App. Mein Code sieht wie folgt aus:in azurDateiFreigabe

CloudStorageAccount cloudStorageAccount = CloudStorageAccount.Parse(StorageConnectionString); 

CloudFileClient cloudFileClient = cloudStorageAccount.CreateCloudFileClient(); 

//Get a reference for the share 
CloudFileShare cloudFileShare = cloudFileClient.GetShareReference(VideosDirectoryName); 

// Get a reference to the root directory for the share. 
CloudFileDirectory rootDir = cloudFileShare.GetRootDirectoryReference(); 

// Try to get a reference for the new folder 
CloudFileDirectory sampleDir = rootDir.GetDirectoryReference(storagePath); 

//create the directory structure 
sampleDir.CreateAsync(); 

StoragePath wie folgt aussieht: 2017 \ 03 \ 13 \ d68dd25587624b8691a05834466cfc11

Wenn ich diesen Code nichts laufen passiert. Es wird keine Ausnahme ausgelöst, aber kein Ordner erstellt. Was mache ich falsch?

Edit: Inzwischen fand ich this answer die besagt, dass ich Ebene für Ebene erstellen müssen. Ich werde das versuchen.

+0

was passiert, wenn Sie es Level-by-Ebene bauen? –

+0

Wenn ich die Befehle nacheinander ausführe, wird nur das erste Verzeichnis erstellt. –

Antwort

1

Wenn Sie Fiddler verwenden Anfrage zu erfassen, während Sie Multi-Level Verzeichnisstruktur über Azure Storage SDK zu erstellen, finden Sie es eine Anfrage wie diese sendet.

PUT https: // {storageaccount} .file.core.windows.net/{Freigabename}/2017% 5C03% 5C13% 5C0945682c-2214-49a5-93ba-10ac105532ea restype = Verzeichnis

und Sie finden Status ist .

enter image description here

Nach this documentation, konnten wir feststellen, dass das übergeordnete Verzeichnis bereits innerhalb der Freigabe vorhanden sein muss, bevor mydirectory erstellt werden kann. So

+0

Wenn ich ein Verzeichnis auf einmal erstellen, wie kann ich zwischen Befehlen warten? Weil ich die gesamte Struktur in einer Methode erstellen möchte. –

+1

Sie könnten versuchen, auf jede Erstellungsverzeichnisoperation zu warten, um '' sampleDir.CreateAsync() zu beenden. Wait(); ''. –