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

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

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

        cloudFileDirectory.CreateIfNotExists(); //Exception occur

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

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

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...");
        }
    }
Другие вопросы по тегам