Как удалить файл из локального хранилища Azure Web App? - PullRequest
0 голосов
/ 03 июля 2019

Это было бы очевидное место для начала: Удаление и загрузка файлов в локальное хранилище веб-приложения Azure программно .Но это было задано 3 года назад, и, как этот ОП, я не могу придумать ни одного ответа.

Я понимаю, что у Куду есть API для обработки этого материала.Я могу увидеть файл в веб-браузере Kudu (https://mysitename.scm.azurewebsites.net/DebugConsole).

Но, конечно, это должно быть проще, чем вызывать API только для удаления файла?!?!? Давай! Действительно?

enter image description here

Этот файл был легко загружен с использованием HttpPostedFileBase.SaveAs(path). Но HttpPostedFileBase не предлагает опцию Delete.

Я пробовалпросто хорошо System.IO.File. Понял, если бы он вызывался из контекста сервера приложения, он бы работал:

    public void DeleteFile(string fileToDelete)
    {
        try
        {
            if (System.IO.File.Exists(fileToDelete))
                System.IO.File.Delete(fileToDelete);
        }
        catch (Exception ex)
        {
            Logging.LogError(....);
        }
    }

При использовании этого ничего не происходит. Никаких ошибок не регистрируется. Исключение не выдается. Ничего.Все действует так, как будто все работает, но файл остается.

Конечно, кто-то уже имел дело с этим? Должно быть простое решение.

1 Ответ

0 голосов
/ 24 июля 2019

Если вы пытаетесь удалить файл внутри самого веб-приложения, это будет легко сделать.

В соответствии с предоставленным вами кодом public void DeleteFile(string fileToDelete), основная проблема может быть связана с параметромfileToDelete неверный путь.И вы просто используете File.Exists(fileToDelete), чтобы проверить, существует файл или нет, но если файл не существует, код ничего не делает.Таким образом, возникает сценарий: «При использовании этого ничего не происходит. Не регистрируется ошибка. Не выдается исключение».

Вы можете добавить блок else, который что-то делает, когда файл не существует, или вы можете напрямую использоватьабсолютный путь для удаления файла, как показано ниже:

string fileToDelete = "D:\home\site\wwwroot\" + "uploads\xxx.zip"

, затем передайте fileToDelete методу public void DeleteFile(string fileToDelete)

...