我正在开发一个独立的Outlook应用程序。用户需要从OLPublicFoldersAllPublicFolder派生的列表中选择Outlook文件夹。选定的文件夹可以在公用文件夹的根中,也可以在另一个文件夹的子文件夹中。
以前我使用的是NameSpace对象的.pickFolder方法。这是可行的,但我更愿意创建我自己的选择器对话框,它集成到我自己的应用程序中。
我想到的一个解决方案是动态添加一个TreeViewItem,它在用户每次展开相应根文件夹的树时表示一个子文件夹。但我对如何做到这一点有些迷茫。
这就是我想出来的。可能有一个更好的方法来处理这个...但本质上我构建了一个表示每个文件夹的TreeViewItem。如果存在任何子文件夹,我希望扩展器图形出现,但显然我还不能添加子文件夹对象,因为这最终会在迭代它们时抛出RPC限制错误。
public partial class MainWindow : Window
{
Microsoft.Office.Interop.Outlook.Application olApp = Marshal.GetActiveObject("Outlook.Application") as Microsoft.Office.Interop.Outlook.Application;
Microsoft.Office.Interop.Outlook.NameSpace olNs;
public MainWindow()
{
InitializeComponent();
BuildTree();
}
public void BuildTree()
{
olNs = olApp.GetNamespace("MAPI");
Folder rootFolder = olNs.GetDefaultFolder(OlDefaultFolders.olFolderInbox) as Folder;
TreeViewItem tvi = new TreeViewItem();
tvi.Header = rootFolder.Name;
tvi.Tag = rootFolder; //store Folder object in TreeViewItem tag
tvi.Expanded += new RoutedEventHandler(tvi_Expanded); //Add expander event
//Check for subfolders within this folder
if (rootFolder.Folders.Count > 0)
{
//Add placeholder item to add expander graphic
tvi.Items.Add("");
}
tv_MyTree.Items.Add(tvi); //main TreeView object
}
private void tvi_Expanded(object sender, RoutedEventArgs e)
{
TreeViewItem svi = sender as TreeViewItem; //source/sender TreeViewItem
svi.Expanded -= (tvi_Expanded); //Remove expander event, otherwise any expanders that are clicked later will trigger this method
Folder f = svi.Tag as Folder;
if (f.Folders.Count > 0)
{
svi.Items.Clear(); //clear list - effectively removes placeholder, rebuilds tree
foreach (Folder sub in f.Folders)
{
TreeViewItem tvi = new TreeViewItem();
tvi.Header = sub.Name;
tvi.Tag = sub;
tvi.Expanded += new RoutedEventHandler(tvi_Expanded);
if (sub.Folders.Count > 0)
{
tvi.Items.Add("");
}
svi.Items.Add(tvi);
}
}
}
}
问题内容: 尝试删除以下 用户 创建的 node_modules 目录时: 源文件名大于文件系统支持的文件名。尝试移动到路径名较短的位置,或尝试重命名为较短的名称,然后再尝试执行此操作 我也尝试过+ ,但仍然遇到相同的问题。 问题答案: 由于这是Google的最佳搜索结果,因此这对我有用: 安装RimRaf: 在项目文件夹中,使用以下命令删除node_modules文件夹: 如果要递归删除: [
我有一个spring boot应用程序,我想在其中外部化消息。我将这些消息分为错误、信息和成功。因此,我创建了如下所示的嵌套文件夹结构: 并且,我正试图通过以下方式从服务中访问它: 这给了我以下例外情况: missingResourceException:找不到bundle的基本名称错误,区域设置为 但是,如果我将属性文件保存在下面的文件夹之外,它可以正常工作: null
如果我们有一个文件夹,其中包含所有内容。txt文件,我们可以使用sc.textFile(“folder/*.txt”)读取所有这些文件。但是,如果我有一个文件夹,其中包含更多名为datewise的文件夹,例如,,。。。,其中还包含一些<代码>。记录文件。如何在Spark中阅读这些内容? 在我的例子中,结构更加嵌套
问题内容: 我有一个名为“数据”的文件夹。此文件夹有一个名为“收件箱”的子文件夹,其中有多个“ .txt”文件。可以修改“数据”文件夹,最后会有多个带有“收件箱”子文件夹和“ .txt”文件的子文件夹。我需要监视“收件箱”文件夹中的“数据”文件夹和“ .txt”文件。我怎样才能做到这一点? INotify只是监视文件夹,并在创建子文件夹时弹出事件。创建“ .txt”文件(在哪个文件夹中)时,如何弹
我正在做一个粒子在晶格中运动的随机行走模拟。因此,我必须创建大量的随机数,大约10^12及以上。目前,我正在使用C 11提供的可能性 问题是:我能做些什么来减少生成这些数字所需的CPU时间,以及对它们的质量有什么影响? 如您所见,我尝试了不同的引擎,但这对CPU时间没有太大影响。此外,我的uniform01(gen)和generate\u canonical之间有什么区别 编辑:通过阅读答案,我得
我有以下结构: 我正在寻找一种算法,如何从创建一个类似父子嵌套的结构。 逻辑是这样的: 假设:列表中的第一项总是以深度=0开头 如果深度大于最后一个,它必须是最后一个的孩子 我没法让它工作。它应该是递归的,具有无限嵌套/深度级别。 谢谢你们的帮助!