【问题标题】:tree View fullpath stripping树视图全路径剥离
【发布时间】:2011-12-30 14:59:05
【问题描述】:

这是 codeplex 上的应用程序,我所做的只是创建了一个新文本框并尝试将当前节点的路径选择到此文本框中,但我得到了我根本不需要的额外东西,

链接到应用程序,

Codeplex app

我正在使用的代码行是,

TextBox1.Text = nodeCurrent.FullPath;

我得到的输出是这样的,

我的电脑\C:\\Documents and Settings\Administrator\Desktop

我这里的电脑是根节点,我不需要,我要的就是

C:\Documents and Settings\Administrator\Desktop

添加图片

这是我正在使用的功能

private void tvFolders_AfterSelect(object sender, System.Windows.Forms.TreeViewEventArgs e)
    {
        //Populate folders and files when a folder is selected
        this.Cursor = Cursors.WaitCursor;

        //get current selected drive or folder
        TreeNode nodeCurrent = e.Node;
        string newPath = getFullPath(nodeCurrent.FullPath);
        tbDirectory.Text = newPath;


        //clear all sub-folders
        nodeCurrent.Nodes.Clear();

        if (nodeCurrent.SelectedImageIndex == 0)
        {
            //Selected My Computer - repopulate drive list
            PopulateDriveList();
        }
        else
        {
            //populate sub-folders and folder files
            PopulateDirectory(nodeCurrent, nodeCurrent.Nodes);
        }
        this.Cursor = Cursors.Default;
    }

【问题讨论】:

  • 检查Jim Mischel's 答案,因为文章中有一种方法与我建议的方法相同。

标签: c# .net winforms treeview


【解决方案1】:

在我看来,该代码中的 getFullPath 方法完全可以满足您的需求。它剥离MyComputer\ 字符串并返回其余部分。写:

string newPath = getFullPath(nodeCurrent.FullPath);

【讨论】:

  • 我的问题解决了一半,现在如何摆脱 "C:\\" 之后的 "\" 因为我只需要一个 & 我怀疑我是否可以像我刚刚一样删除它单击驱动器c节点它给了我“C:/”但是当我去像文档这样的子文件夹时它给了我C://Documents
  • @TimeToThine:我在代码中看不到任何会使其放入双反斜杠的内容。看到界面中显示的那些“\\”了吗?
  • 我添加了图片先生,它看起来如何
  • @TimeToThine:您必须在调试器中单步执行才能查看它从何处获取额外的 `\` 字符。粗略查看源代码并没有向我透露任何信息。
  • @ 尝试调试,只注意到一件事,它的驱动器名称为“C:/”,然后当它添加路径时,需要立即删除它,brb
【解决方案2】:

在代码中添加以下行,它将删除路径中重复出现的“\”

newPath = newPath.Replace("\\\\", "\\");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-01-18
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 1970-01-01
    • 2018-10-31
    • 2011-10-04
    相关资源
    最近更新 更多