Хранилище файлов Azure - загрузка файла во вложенные каталоги

Я хочу загружать файлы, но в среде вложенных папок. У меня нет проблем с созданием каталога и загрузкой файла, но при использовании вложенных каталогов я получил исключение хранилища при попытке создать папки. Вот пример кода.

   CloudFileDirectory rootDirectory = FileShare.GetRootDirectoryReference();
   if (rootDirectory.Exists())
   {
       cloudFileDirectory = rootDirectory.GetDirectoryReference("Folder/SubFolder"); 

        cloudFileDirectory.CreateIfNotExists(); //Exception occur

        var file = cloudFileDirectory.GetFileReference("File.txt");
   }

Нужно ли мне создавать метод создания каталога для каталога или есть более простое решение?


person Henke    schedule 24.11.2016    source источник


Ответы (1)


Нужно ли мне создавать метод создания каталога для каталога или есть более простое решение?

Да, вам нужно это сделать. Вы не можете указать структуру папок, и SDK позаботится об этом за вас. Пожалуйста, взгляните на пример кода ниже для одного подхода.

    static void NestedDirectoriesTest()
    {
        var cred = new StorageCredentials(accountName, accountKey);
        var account = new CloudStorageAccount(cred, true);
        var client = account.CreateCloudFileClient();
        var share = client.GetShareReference("temp2");
        share.CreateIfNotExists();
        var cloudFileDirectory = share.GetRootDirectoryReference();
        var nestedFolderStructure = "Folder/SubFolder";
        var delimiter = new char[] { '/' }; 
        var nestedFolderArray = nestedFolderStructure.Split(delimiter);
        for (var i=0; i<nestedFolderArray.Length; i++)
        {
            cloudFileDirectory = cloudFileDirectory.GetDirectoryReference(nestedFolderArray[i]);
            cloudFileDirectory.CreateIfNotExists();
            Console.WriteLine(cloudFileDirectory.Name + " created...");
        }
    }
person Gaurav Mantri    schedule 24.11.2016