C#目录搜索(数量)

时间:2016-01-27 07:49:56

标签: c# directory

private int dReturn, fReturn = 0;

public Maker()
{
    InitializeComponent();
}

private void button1_Click(object sender, EventArgs e)
{
    if (fd.ShowDialog() != DialogResult.OK) { return; }
    listView1.Items.Clear();
    dReturn = 0;
    fReturn = 0;
    textBox1.Text = fd.SelectedPath;

    Scanner scanner = new Scanner();

    scanner.Show();
    fscan(fd.SelectedPath);
    dscan(fd.SelectedPath);
    scanner.Close();

    MessageBox.Show("File : " + fReturn + ", Folder : " + dReturn, "Information", MessageBoxButtons.OK, MessageBoxIcon.Information);
}

private int dscan(string path)
{
    try
    {
        foreach (string d in Directory.GetDirectories(path))
        {
            dReturn = dReturn + 1;
            dscan(d);
            Application.DoEvents();
        }
    }

    catch(Exception)
    {
        ListViewItem access = new ListViewItem(path);
        listView1.Items.Add(access);
    }

    return dReturn;
}

我想知道所选路径中的文件夹数量。 所以我做了一个如上所述的递归函数。 但文件夹的数量与PC属性视图不同。 请帮我... 当路径很小时很好,当问题很大时会出现问题。

感谢您的评论。 对不起,这还不够描述。 我给你看一些图片。

enter image description here

像这样我的程序搜索更多的文件夹。

1 个答案:

答案 0 :(得分:3)

也许您有一些隐藏文件夹(C# - Get a list of files excluding those that are hidden)?

顺便说一句,GetDirectories可以返回所有子目录:https://msdn.microsoft.com/fr-fr/library/ms143314(v=vs.110).aspx

Directory.GetDirectories(path, "*", SearchOption.AllDirectories);

如果仍有问题,请尝试调试以查看差异。