如何列出硬盘驱动器文件夹下的所有文件名?

Posted

技术标签:

【中文标题】如何列出硬盘驱动器文件夹下的所有文件名?【英文标题】:how to list all files names under a folder in hard drive? 【发布时间】:2018-02-15 21:49:09 【问题描述】:

我想用 vb.net 列出硬盘中文件夹下存在的所有文件名,但我不知道如何。首先,我选择一个带有文件夹浏览器组件的文件夹,接下来,我列出所有文件

这是我的代码(仅用于选择文件夹)

   dossier_disque.ShowDialog()
    txt_folder.Text = dossier_disque.SelectedPath

对于列出所有文件,我尝试对每个文件使用,但它不正确

我尝试列出文件时的代码

        Dim files() As String = Directory.GetFiles(txt_folder.Text)
    For Each a In CStr(files.Count)
        folder_hard.Rows.Add(Directory.GetFiles(txt_folder.Text))
    Next

folder_hard 是一个网格名称 txt_folder 是文件夹路径的名称

使用此代码,结果,我在网格中只能看到第一个文件两次

【问题讨论】:

Get a list of all files inside of a directory in vb.net的可能重复 同样的结果,我编辑我的帖子 这是作业,你不知道怎么做? ;-) 你知道,你循环的是一个数字而不是文件列表?例如。如果您的文件夹中有 587 个文件,您的 For 循环会返回 3 个字符。 “5”、“8”、“7”!我想,您想遍历文件数组并将它们添加到您的 DGV。 【参考方案1】:

您的 for each 循环存在问题: CStr() 将值转换为字符串。 因此,您的 for 循环正在遍历 files 数组中文件数的字符串中的每个字符。 所以改成:

For Each a In files

然后 a 将是 files 数组中的每个文件名。 如果您想将每个添加到您的网格中,您需要将该行更改为:

folder_hard.Rows.Add(a)

所以这应该有效:

Dim files() As String = Directory.GetFiles(txt_folder.Text)
For Each a In files
    folder_hard.Rows.Add(a)
Next

【讨论】:

以上是关于如何列出硬盘驱动器文件夹下的所有文件名?的主要内容,如果未能解决你的问题,请参考以下文章

如何将所有文件刷新到硬盘驱动器,即使 WinRAR 也可以将它们存档?

批处理:列出可用的硬盘驱动器并使用所选的选项

如何在ftp中使用映射到本地硬盘中的网络驱动器?

从硬盘驱动器中永久删除文件

如何从不在 Outlook 中的硬盘中打开 Outlook .msg 文件?

移动硬盘需要格式化。不包含可识别的文件系统。请确定所有请求的文件系统驱动程序已加载,且此卷未损坏。