2016-11-24 2 views
0

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

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

     cloudFileDirectory.CreateIfNotExists(); //Exception occur 

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

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

ответ

3

Должен ли я создать метод, создающий каталог для каталога или , есть более простое решение?

Да, вам нужно будет это сделать. Вы не можете указать структуру папок, и 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..."); 
     } 
    } 
Смежные вопросы