В sdk / api таких методов нет.
Помимо метода цикла, вот что я могу придумать:
1. Смонтируйте хранилище файлов как локальный диск , затем используйте его как локальный каталог, используя метод Directory.Move .
2. Другим способом является использование Microsoft.Azure.Storage.DataMovement , версия 0.9.0 (обратите внимание, используйте последнюю версию, которая использует Microsoft.Azure.Storage. Файл, но это тот, который вы не выбираете).
Затем используйте метод 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.