我正在开发一个Windows应用程序,我需要获取文件夹名称,同时右键单击文件夹以对其执行某些操作。
到目前为止,我做了以下事情:
现在我将注册表项显示在文件夹上下文菜单中。在我的申请中,我做了以下事情:
1- in program.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- in my form1:
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:\新的只有C:\新文件夹,如果args.length>这是我的问题; 0它只显示长度0而不是完整路径。
答案 0 :(得分:1)
您需要将%0
放在注册表中以强制将整个路径视为单个参数。
否则,空格将被视为参数分隔符。
您也可以调用String.Join(" ", args)
手动重新组合所有参数,但第一种方法更好。