首页 > 解决方案 > 仅获取文件名的一部分并从asp.net vb中的服务器文件夹中删除

问题描述

我正在尝试仅获取“_”和“.pdf”之间的服务器文件夹中文件名的最后一部分,以便仅删除特定文件。invoices文件夹中的文件是这样的:Invoice_12345.pdf、Invoice_2345.pdf、Invoice_5555.pdf等。我需要提取“12345”、“2345”和“5555”,然后我需要删除文件如果它不包含在数据库查询中。

使用以下代码,我希望从文件夹中的文件中提取数字,那么如何获取“_”和“.pdf”之间的数字?

Dim files() As String = Directory.GetFiles(Server.MapPath("/Contents/Invoices/"))
For Each file As String In files            
        list.Add(file)
    
Next

然后,如果提取的数字不包含在我从数据库查询的数据集中,我需要从服务器中删除文件,但这可能是另一个帖子的问题。

For example, for Invoice "5555"
If PaidFull = True 
File.Delete(file)
End If

当然,如果那时我必须从服务器中删除完整的文件名。

标签: asp.netvb.net

解决方案


如果您确定该数字不会在目录路径中的某处弹出,您真的不需要解析文件名。

    'Dim list = Directory.GetFiles("C:\SomeDirectory").ToList
    Dim myTestList As New List(Of String) From {"Invoice_12345.pdf", "Invoice_2345.pdf", "Invoice_5555.pdf"}
    For Each fileName In myTestList
        If fileName.Contains("5555") Then
            Debug.Print(fileName) 'Or do what you need to do
        End If
    Next

推荐阅读