Как удалить все файлы в папке хранилища файлов Azure?


Я пытаюсь понять, как удалить все файлы из папки в хранилище файлов Azure.

CloudFileDirectory.ListFilesAndDirectories() возвращает IEnumerable из IListFileItem. Но это не очень помогает, потому что у него нет свойства filename или подобного.

Вот что у меня есть до сих пор:

var folder = root.GetDirectoryReference("myfolder");

if (folder.Exists()) {
    foreach (var file in folder.ListFilesAndDirectories()) {

        // How do I delete 'file'

    }
}

Как я могу изменить IListFileItem на CloudFile, чтобы я мог вызвать myfile.Delete()?

1 5

1 ответ:

ListFilesAndDirectories может возвращать как файлы, так и каталоги, так что вы получите базовый класс для этих двух. Затем вы можете проверить, какие, Если типы это и приведение. Обратите внимание, что вы хотите отслеживать любые подкаталоги, чтобы вы могли рекурсивно удалять файлы в них.

var folder = root.GetDirectoryReference("myfolder");

if (folder.Exists())
{
    foreach (var item in folder.ListFilesAndDirectories())
    {         
        if (item.GetType() == typeof(CloudFile))
        {
            CloudFile file = (CloudFile)item;

            // Do whatever
        }

        else if (item.GetType() == typeof(CloudFileDirectory))
        {
            CloudFileDirectory dir = (CloudFileDirectory)item;

            // Do whatever
        }
    }
}