2011-05-11 21 views
1

我正在開發一個Windows應用程序,我需要獲取文件夾名稱,同時右鍵單擊該文件夾對其執行一些操作。C#:獲取文件夾名稱時右鍵單擊它

到目前爲止,我做了以下內容:

  1. 製造HKKEY_CLASS_ROOT \文件夾\殼\註冊表子項(我的程序名)
  2. 使我的程序名\命令[路徑的註冊表子項我的程序]

現在我使註冊表鍵在文件夾上下文菜單中顯示。而在我的應用我做了以下內容:

Program.cs中1

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); 
    } 

在我的Form1中的2-:

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; 
     } 
    } 

最後:

現在當我右鍵點擊在一個文件夾讓我們說,例如稱爲新。然後textbox3.text = C:\新,迄今它工作正常,但如果文件夾名稱是新建文件夾,然後textbox3.text = C:\新只有不是C:\新文件夾,這是我的問題,如果args.length> 0它只顯示長度0而不是完整路徑。

+0

http://stackoverflow.com/questions/1563516/um-proggy-not-worky/1563668#1563668 – SLaks 2011-05-11 13:18:52

回答

1

您需要將引號中的%0放在註冊表中,以強制將整個路徑視爲單個參數。
否則,空格被視爲參數分隔符。

您也可以撥打String.Join(" ", args)手動重新組合所有參數,但第一種方式更好。

+0

哇的人,它真的工作,男人非常非常非常感謝我真的做了一個大搜索,謝謝再次,順便說一句,我把%1放在雙引號中不是%0,它也起作用。非常感謝 – BOSS 2011-05-11 13:28:00

相關問題