【问题标题】:How to correctly count the number of files in a folder如何正确计算文件夹中的文件数
【发布时间】:2013-04-07 19:29:35
【问题描述】:

我正在制作一个文件夹列表,其中每个文件夹只需要几个属性,所以我使用下面的类。但是,无论是哪个文件夹,FilesInFolder 属性总是比文件夹中的实际文件数多 5 个。

有人可以帮我找出问题所在吗?谢谢。

Public Class Single_Action_Folder

    Public ReadOnly FullName As String = ""
    Public ReadOnly Name As String = ""
    Public ReadOnly FilesInFolder As Integer = 0
    Public ReadOnly Exists As Boolean = False

    '**
    ' Constructor
    '*
    Public Sub New(Optional dir As DirectoryInfo = Nothing)

        ' First check that a directory has been specified
        If dir Is Nothing Then Exit Sub

        ' Populate the class properties
        FullName = dir.FullName
        Name = dir.Name
        FilesInFolder = dir.GetFiles().Count
        Exists = dir.Exists

    End Sub

End Class

【问题讨论】:

  • @Belial09:该链接与 OP 已经尝试过的链接有何不同?
  • 您是否查看了 GetFiles 枚举返回的文件?
  • @Tim Schmelter 如果您查看帖子中的其他答案,则有一个 LINQ 解决方案。链接上的答案不同,因为在 GetFiles() 函数中输入了参数。
  • @Belial09:但是,他想要一个目录中的总文件数,所以我不明白为什么使用搜索模式或搜索选项会有所帮助。 dir.GetFiles().Count() 应该可以工作。

标签: vb.net file count


【解决方案1】:

所以这里的问题是FilesInFolder = dir.GetFiles().Count 正在计算隐藏文件。尽管我已将 Windows 文件夹选项设置为显示隐藏文件/文件夹,但它们并未显示,因为它们就像专辑封面一样。以下行对我的问题进行了排序。

FilesInFolder = Directory.GetFiles(FullName, "*.mp3").Count

我想知道,是否有一种方法可以计算多个文件类型?即 MP3 和 WMA?如果有人碰巧知道,我会发表评论。

【讨论】:

【解决方案2】:

检查您在测试目录中没有隐藏文件。我在我的电脑上检查了你的代码,它运行良好。

【讨论】:

  • 当你在它的时候,如果你将隐藏属性设置为一个文件会发生什么?
  • 我测试过的任何目录中都没有隐藏文件。谢谢。
  • 奇怪 - 即使隐藏文件设置为显示,我的每个音乐文件夹(专辑封面等)中显然有 5 个文件没有显示...
【解决方案3】:

使用此代码:

    Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
    Dim FilesInFolder = Directory.GetFiles("C:\BGS\TemporaryProjects\Images\", "*.mp3").Count
    Dim i As Integer = 1
    While i <= FilesInFolder
        ListBox1.Items.Add(i)
        i += 1
    End While
End Sub

【讨论】:

    猜你喜欢
    • 2013-09-16
    • 2016-02-25
    • 1970-01-01
    • 1970-01-01
    • 2012-11-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多