好的,我正在创建一个小而简单的程序来管理给定目录中的某些文件。但是,该程序有多个设置,根据设置删除某些文件。对于经验丰富的编码人员来说,我有两个障碍无疑是容易的......首先,如何创建包含文件名的列表?然后如何比较给定目录中的顺序文件清单?理想情况下,我希望代码为多个列表生成预先确定的文件名列表。例如:
List1 -
FileName1.png
FileName2.png
Lst 2 -
FileName3.png
FileName4.png
到目前为止,这是我的代码......
Dim Path As String = "C:\SampleFolder\"
'Check if files match file names in list if so delete
For Each file In Path
If fileName = List1 Then
'delete file
Else
'do nothing to that file.
End If
Next
基本上我如何构建列表我可以轻松地比较文件名,以便我可以删除文件与列表匹配?
答案 0 :(得分:2)
创建列表的最佳方法是使用List
类。然后,您可以使用For Each
循环来处理列表中的每个项目。您可以使用IO.File.Exists
检查文件是否存在,然后IO.File.Delete
将其删除。
Dim list1 As New List(Of String) From {"FileName1.png", "FileName2.png"}
For Each listFile As String In list1
Dim filePath As String = IO.Path.Combine("C:\SampleFolder", listFile)
If IO.File.Exists(filePath) Then IO.File.Delete(filePath)
Next
答案 1 :(得分:1)
Dim List1 As New List(Of String)
Dim List2 As New List(Of String)
Sub Main()
Dim files() As String = System.IO.Directory.GetFiles("C:\SampleFolder")
List1.Add("FileName1.png")
List1.Add("FileName2.png")
List2.Add("FileName3.png")
List2.Add("FileName4.png")
ProcessFiles(files, List1)
ProcessFiles(files, List2)
End Sub
Private Sub ProcessFiles(files() As String, l As IList(Of String))
For Each f As String In files
If l.Contains(System.IO.Path.GetFileName(f)) Then
'delete file
End If
Next
End Sub