Как переместить Azure CloudFileDirectory в новый родительский CloudFileDirectory?

Я нашел много информации о том, как переместить Azure CloudFile. Но мне нужно переместить весь CloudFileDirectory. Я действительно надеюсь, что мне не придется перебирать все файлы внутри каталога и перемещать их по одному.

Примечание: мы используем Microsoft.WindowsAzure.Storage.File, а не Microsoft.Azure.Storage.File.
(Не спрашивай.)

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
0
357
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

В sdk/api таких методов нет.

Помимо метода цикла, вот что я могу придумать:

1.Смонтировать файловое хранилище как локальный диск, затем используйте его как локальный каталог, используя метод Каталог.Переместить.

2. Другой способ — использовать Microsoft.Azure.Storage.DataMovement, версия 0.9.0 (обратите внимание, используйте последнюю версию, в которой используется Microsoft.Azure.Storage.File, но вы не выбираете ее).

Затем используйте метод CopyDirectoryAsync, чтобы скопировать содержимое каталога в другой каталог, но после завершения копирования вам также понадобится цикл для удаления исходного каталога, поскольку он не пустой каталог.

Пример кода:

            CloudStorageAccount storageAccount = new CloudStorageAccount(new StorageCredentials("xx", "xxx"), true);
            CloudFileClient fileClient = storageAccount.CreateCloudFileClient();
            CloudFileShare fileShare = fileClient.GetShareReference("test");
            CloudFileDirectory rootDir = fileShare.GetRootDirectoryReference();

            CloudFileDirectory sourceDir = rootDir.GetDirectoryReference("t1/t2");
            CloudFileDirectory destDir = rootDir.GetDirectoryReference("t1");

            CopyDirectoryOptions options = new CopyDirectoryOptions()
            {
                Recursive = true,
            };

            TransferManager.CopyDirectoryAsync(sourceDir, destDir, false, options, null).GetAwaiter().GetResult();

          //After copy is completed, you also need loop to delete the source directory.
          //your code to delete the source directory.

Другие вопросы по теме