我想知道是否可以检查文件是否与设置扩展列表匹配。目前我有一个工作代码只检查文件,看它是否有.txt .jpg或.mp3
实施例
If (Path.GetExtension(f).ToLower() = ".txt") Then
' It's a .txt file
' MsgBox("I am a Txt Document")
b.Image = My.Resources.Text_Img
ElseIf (Path.GetExtension(f).ToLower() = ".jpg") Then
b.Image = My.Resources.Img_Img
Else
b.Image = My.Resources.Folder_Img
End If
此代码只是为快捷方式设置图像。我希望能够检查文件是否匹配txt而不是.doc .log 然后所有视频类型mp4 avi mpg。 然后所有音频类型mp3 ogg flacc acc
尝试但失败
ElseIf (Path.GetExtension(f).ToLower() = ".jpg" & ".png" & ".jpeg" & ".tiff") Then
b.Image = My.Resources.Img_Img
End If
这是否可能不想添加所有100+扩展,每个扩展都有自己的If语句。 先谢谢你。 -Dan
答案 0 :(得分:3)
如果你想避免字典路由(除了这是另一种方法之外没有其他正当理由),你可以使用内嵌数组来检查每组扩展。
Dim extension = Path.GetExtension(f).ToLower
If {".txt"}.Contains(extension) Then
b.Image = My.Resources.Text_Img
ElseIf {".jpg", ".png", ".tif"}.Contains(extension) Then
b.Image = My.Resources.Img_Img
Else
b.Image = My.Resources.Folder_Img
End If
我确信使用RegEx和各种LINQ或其他奇怪的方法可以实现完全有效和美观的方法!
答案 1 :(得分:1)
而不是如果你可以从值的字典中查找代码。将字典声明为:
Dim dictionary As New Dictionary(Of String, TheResourceType)
dictionary.Add(".txt", My.Resources.Text_Img)
dictionary.Add(".jpg", My.Resources.Img_Img)
dictionary.Add(".png", My.Resources.Img_Img)
dictionary.Add(".jpeg", My.Resources.Img_Img)
dictionary.Add(".tiff", My.Resources.Img_Img)
问题不清楚b.Image
或My.Resources...
值的类型,因此请根据需要更改TheResourceType
。
使用以下代码访问值:
Dim ext As Path.GetExtension(f).ToLower()
If dictionary.ContainsKey(ext) Then
b.Image = dictionary.Item(ext)
Else
b.Image = My.Resources.Folder_Img
End If
答案 2 :(得分:0)
做类似的事情:
Dim extension As String = Path.GetExtension(f).ToLower()
If extension.Equals("txt") Then
b.Image = My.Resources.Text_Img
ElseIf extension.Equals("jpg") OrElse extension.Equals("png") OrElse extension.Equals("tif") Then
b.Image = My.Resources.Img_Img
Else
b.Image = My.Resources.Folder_Img
End If
在上面的代码中,Path.GetExtension()方法只被调用一次,而不是每次都检查扩展名。其次,它使用字符串内置Equals()方法来检查扩展。第三,针对多个扩展的检查语法是固定的 - 查看关于图像文件的第二个条件 - 它与您的略有不同。
答案 3 :(得分:0)
您可能已经考虑过这个,但另一个选项(如果这是常见的需求)将是创建公共扩展的数据库表,然后编写一个函数来查询该表,并将Path.GetExtension作为参数传递。
此类数据库表的详尽扩展列表可在此处找到:http://www.freeformatter.com/mime-types-list.html