C#:右键单击文件夹名称时获取文件夹名称

本文关键字:文件夹 获取 右键 单击 | 更新日期: 2023-09-27 17:56:12

我正在开发一个Windows应用程序,我需要在右键单击文件夹时获取文件夹名称以对其进行一些操作。

到目前为止,我做了以下工作:

  1. 在HKKEY_CLASS_ROOT''文件夹''外壳''(我的程序名称)中创建了一个注册表子项
  2. 制作了我的程序名称''命令 [我的程序的路径] 的注册表子项

现在我制作了要在文件夹上下文菜单中显示的注册表项。在我的应用程序中,我做了以下工作:

1-在程序中.cs

    static void Main(string[] args)
    {
        Application.EnableVisualStyles();
        Application.SetCompatibleTextRenderingDefault(false);
        Form1 p = new Form1();
        if (args.Length > 0)
        {
            p.pathkey = args[0];
        }
        Application.Run(p);
    }

2- 在我的表格中1 :

    private string _pathkey;
    public string pathkey
    {
        get { return _pathkey; }
        set { _pathkey = value; }
    }
    private void Form1_Load(object sender, EventArgs e)
    { 
        if (this.pathkey != null)
        {
           textBox1.Text=pathkey;
        }
    }

最后:

现在,当我右键单击一个文件夹时,例如称为 NEW。 然后 textbox3.text = C:''NEW ,到目前为止

它工作正常,但如果文件夹名称是新建文件夹,那么 textbox3.text = C:''New 只有不是 C:''New 文件夹,这就是我的问题,如果 args.length> 0,它只显示长度 0 而不是完整路径。

C#:右键单击文件夹名称时获取文件夹名称

您需要

%0放在注册表中的引号中,以强制将整个路径视为单个参数。
否则,空格将被视为参数分隔符。

您也可以调用String.Join(" ", args)来手动重新组合所有参数,但第一种方法更好。