2011-12-18 79 views
0

需要帮助的新手。以下代码将统计收件箱下的所有子文件夹,但问题是这些子文件夹下总是有许多文件夹。我有困难的工作如何计算的子文件夹下的子文件夹,如果你明白我的意思:)如何统计收件箱中的子文件夹,包括Outlook中的子文件夹等下的子文件夹

MAPIFolder oFolder = this.ns.GetSharedDefaultFolder(oRecip, OlDefaultFolders.olFolderInbox); 
int result = oFolder.Folders.Count; 
foreach (MAPIFolder subFolder in oFolder.Folders) 
    { 
     result =+ oFolder.Folders.Count; 
    } 
tbFolderItemCount.Text = result.ToString(); 
+0

你将如何计算,包括所有子目录的目录下的文件?问题是一样的。 – 2011-12-18 21:55:07

回答

2

我不知道你正在使用的API,但你需要切换到递归方法。我想可能是这个样子:

public int CountSubfolders(MAPIFolder folder) 
{ 
    int count = folder.Folders.Count; 

    foreach (MAPIFolder subfolder in folder.Folders) 
    { 
     count += CountSubfolders(subfolder); 
    } 

    return count; 
} 

你会跟你的根文件夹叫它:

MAPIFolder oFolder = this.ns.GetSharedDefaultFolder(oRecip, OlDefaultFolders.olFolderInbox); 

int subfolders = CountSubfolders(oFolder); 
+0

谢谢hawkke,这工作得很好! – 2011-12-19 20:20:43

相关问题