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属性视图不同。 请帮我... 当路径很小时很好,当问题很大时会出现问题。
感谢您的评论。 对不起,这还不够描述。 我给你看一些图片。
像这样我的程序搜索更多的文件夹。答案 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);
如果仍有问题,请尝试调试以查看差异。