在 C# 的列表框中显示文件

本文关键字:显示文件 列表 | 更新日期: 2023-09-27 18:34:35

我需要过滤掉整个计算机,只找到.sto文件。我希望这些文件显示在列表框中。我需要像这样显示它们:"text.sto"。我正在使用Visual C# Express。我该怎么做?

在 C# 的列表框中显示文件

确保在代码文件的顶部有这个 using 指令:

using System.IO;

使用此方法获取目录:

string[] dirs = Directory.GetFiles(@"c:'", "*.sto", SearchOption.AllDirectories);

它需要第二个参数来允许您筛选结果。有关该方法的更多信息,请参见:http://msdn.microsoft.com/en-us/library/ms143316.aspx

如果您不想为此使用内置的 .Net 函数(因为它可能会引发访问错误并且不提供任何结果(,以下是显示以不同方式执行此操作的问题的答案:https://stackoverflow.com/a/929418/184746

参考上述文章,这里有一种方法可以捕获并且不会给您添加的 *.sto 过滤错误:

public static IEnumerable<string> GetFiles(string path)
{
    Queue<string> queue = new Queue<string>();
    queue.Enqueue(path);
    while (queue.Count > 0)
    {
        path = queue.Dequeue();
        try
        {
            foreach (string subDir in Directory.GetDirectories(path))
            {
                queue.Enqueue(subDir);
            }
        }
        catch (Exception ex)
        {
            Console.Error.WriteLine(ex);
        }
        string[] files = null;
        try
        {
            files = (from f in Directory.GetFiles(path)
                     where f.EndsWith(".sto")
                     select f).ToArray();
        }
        catch (Exception ex)
        {
            Console.Error.WriteLine(ex);
        }
        if (files != null)
        {
            foreach (string t in files)
            {
                yield return t;
            }
        }
    }
}

你可以像这样使用它:

string[] dirs = GetFiles(@"c:'").ToArray();

之后,在设计器中创建一个列表框,并循环访问并添加项

foreach(var f in dirs)
{
    listBox1.Items.Add(String.Format("'"{0}'"", f));
}

出于好奇,您在研究此内容时搜索参数是什么?因为一个简单的谷歌搜索揭示了你所需要的一切:"get list of files C#" https://www.google.ca/search?sourceid=chrome&ie=UTF-8&q=get+list+of+files+C%23

一种

搜索sto文件的解决方案,但我不能说它会有多快

string[] filePaths = Directory.GetFiles(@"c:'", 
                         "*.sto", 
                         SearchOption.AllDirectories);