Удалить файлы, имя файла которых начинается с определенного числа - PullRequest
0 голосов
/ 01 августа 2011

Я пытаюсь удалить все файлы в папке, которые начинаются с определенного идентификатора пользователя, поэтому, если идентификатор пользователя = 00000, я хочу удалить файл 00000-1.xml & 00000-2.xml & 00000-3.xml и т. Д. .

Пока у меня есть этот код:

    Dim path as String = Server.MapPath("../myfolder/xml/00000" & something?? & ".xml")

    If path <> "" Then
        Dim fileInfo As FileInfo = Nothing
        Try
            fileInfo = New FileInfo(path)
            If fileInfo.Exists Then
                File.Delete(path)
            End If
        Catch
        End Try

    End If

Очевидно, я только что добавил something??, поскольку я понятия не имею, что туда поместить?

Может кто-нибудь пролить свет на это?

Ответы [ 3 ]

4 голосов
/ 01 августа 2011

Рассмотрите возможность использования Directory.GetFiles .

Dim path as String = Server.MapPath("../myfolder/xml")
If path <> "" Then
    Dim fileName As String
    For Each fileName in Directory.GetFiles (path, "00000-*.xml")
            File.Delete(fileName)
    Next

End If
0 голосов
/ 01 августа 2011

Использование LINQ:

Directory.EnumerateFiles(Server.MapPath(@"../myfolder/xml", "0000*.abc")).ToList().ForEach(File.Delete);
0 голосов
/ 01 августа 2011

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

foreach (string DeleteFileName in Directory.EnumerateFiles(Server.MapPath(@"../MyFolder/xml"), "00000*.xml"))
{
    File.Delete(Path.Combine(Server.MapPath(@"../MyFolder/xml"), DeleteFileName));
}

Обратите внимание, я не припомню, дает ли EnumberateFiles только имя файла или полный путь. если указан полный путь, вы можете удалить Path.Combine ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...