如何在ReadOnlyCollection(Of String)

时间:2015-11-20 03:01:05

标签: vb.net

我有以下代码,它收集目录中的某些文件并将它们放在一个字符串集合中。我想找到该集合中所有文件的总大小。我试过.Length,但是它说Length不是Collection(Of String)的成员。我也尝试过使用FileInfo,但它似乎并不适用于我需要的东西。最终,我想在消息框中显示总大小。

Dim counter = My.Computer.FileSystem.GetFiles(TextBox1.Text,
        FileIO.SearchOption.SearchAllSubDirectories, "*.mp4", "*.jpg", "*.wav", "*.pf_import")

以下是一次尝试的示例,但是当真值为16.5MB时,它给出的值为42。

Dim fi As String
For Each fi In counter
FileLen += fi.Length

我也试过这个例子,但是它给了我0。

Dim fi As String
Dim filesize As Integer
For Each fi In counter
FileLen += filesize

有人能让我知道我做错了吗?

1 个答案:

答案 0 :(得分:0)

遍历每个文件并调用GetFileInfo函数并检索Length属性,该属性的大小以字节为单位:

Dim length As Integer = 0
For Each f In My.Computer.FileSystem.GetFiles(TextBox1.Text,
        FileIO.SearchOption.SearchAllSubDirectories, "*.mp4", "*.jpg", "*.wav", "*.pf_import")
length += My.Computer.FileSystem.GetFileInfo(f).Length
Next

然后从字节转换为兆字节:

Dim totalKB As Double = length/1024.0 ' To Kilobytes
Dim totalMB As Double = totalKB/1000 ' To Megabytes