MS Azure: невозможно скопировать облачный файл Azure в другой каталог

Я пытаюсь скопировать облачный файл из одного каталога в другой в той же учетной записи File-Share, но сталкиваюсь с проблемой.

Код:

Ниже приведен код, который я использую в следующей статье (https://docs.microsoft.com/en-us/azure/storage/files/storage-dotnet-how-to-use-files#copy-files)

public bool ArchiveTheFile(string filename)
    {
        bool fileCopied = false;
        try
        {
            var fileshare = ResolveCloudFileShare();
            if (fileshare.Exists())
            {
                CloudFileDirectory rootDir = fileshare.GetRootDirectoryReference();
                CloudFileDirectory dirSource = rootDir.GetDirectoryReference(ConfigurationManager.AppSettings["Azure.Storage.FileShare.Source"]);
                CloudFileDirectory dirArchive = rootDir.GetDirectoryReference(ConfigurationManager.AppSettings["Azure.Storage.FileShare.Destination"]);

                // Ensure that the directory exists.
                if (dirSource.Exists())
                {
                    // Get a reference to the file we created previously.
                    CloudFile sourceFile = dirSource.GetFileReference(filename);

                    // Ensure that the file exists.
                    if (sourceFile.Exists())
                    {
                        // Ensure that the directory exists.
                        if (dirArchive.Exists())
                        {
                            // Get a reference to the destination file.
                            CloudFile destFile = dirArchive.GetFileReference(filename);
                            destFile.StartCopy(sourceFile);fileCopied =true;
                        }
                    }
                }
            }
        }
        catch (Exception ex)
        {
        }
        return fileCopied ;
    }

Ниже приведена ошибка:

Невозможно использовать метод StartCopy () класса CloudFile

1. Снимок экрана с ошибкой:

введите здесь описание изображения

Объект, возвращаемый GetFileReference (), не имеет метода StartCopy ():

введите здесь описание изображения

2. Сообщение об ошибке:

CloudFile не содержит определения для StartCopy, и метод расширения StartCopy, принимающий первый аргумент типа CloudFile, не может быть найден (вам не хватает директивы using или ссылки на сборку?

Обратите внимание: я уже использую две ссылки на сборку ниже:

с использованием Microsoft.WindowsAzure.Storage;

используя Microsoft.WindowsAzure.Storage.File;


person Sandeep Nandey    schedule 14.05.2018    source источник
comment
Есть еще подробности? Я тестирую его на своем сайте, и он отлично работает. Как вы аутентифицируете свой исходный файл?   -  person Joey Cai    schedule 14.05.2018
comment
Я аутентифицируюсь с помощью ключа доступа. У меня нет проблем с доступом к файлам. Проблема: Код не компилируется из-за ошибки. Я не вижу функцию StartCopy () объекта CloudFile (destFile). Мне здесь не хватает сборки / ссылки?   -  person Sandeep Nandey    schedule 14.05.2018
comment
Вы уверены, что ссылаетесь на правильный CloudFile? если вы наведете указатель мыши на CloudFile, из какого он файла?   -  person Saher Ahwal    schedule 14.05.2018
comment
Расскажите, пожалуйста, о версии Storage SDK для .Net, которую вы используете.   -  person Gaurav Mantri    schedule 15.05.2018
comment
1. CloudFile создается из Microsoft.WindowsAzure.Storage.File 2. Версия: 4.3.0.0   -  person Sandeep Nandey    schedule 15.05.2018


Ответы (1)


Обновите свой Microsoft.WindowsAzure.Storage пакет до последней версии или не ниже 5.0.2. StartCopy для CloudFile не поддерживается до версии 5.0.2.

person Jerry Liu    schedule 15.05.2018
comment
Спасибо, Джерри, я обновил то же самое до последней версии (9.1.1), и это устранило проблему. - person Sandeep Nandey; 15.05.2018