2012-11-26 19 views
0

非常符合標題所說的內容。我在C#中創建了一個exe窗口表單程序,並且我發現如何獲取被拖放到exe上的文件名和路徑。那麼這是獲取文件的正確方法嗎?這是獲得在C#中創建的exe應用程序的拖放文件的正確方法嗎?

public partial class Form1 : Form 
    { 
     public static String file; 
     public Form1() 
     { 
      foreach (String arg in Environment.GetCommandLineArgs()) 
      { 
       file = arg; 
      } 

      InitializeComponent(); 
      label1.Text = file; 
     } 
    } 
} 

它的工作,如果我運行程序本身,它給我的文件路徑和exe本身的名稱。但是,當拖放到exe文件時,它會提供我丟棄的文件。這是做到這一點的正確方法嗎?

回答

0

一般而言,GetCommandLineArgs可能包含也可能不包含可執行文件路徑作爲第一個參數。但在大多數情況下 - 第一個參數將是你的EXE。

因此,第二,第三等參數將包含丟棄的文件。

嗯,思想命令行傳遞給main C#中主類的方法,不是嗎?

+0

是的你是對的。在獲得傳遞給main類的'main'方法,就像'static void Main(string [] args)''這肯定你已經知道了。但那主要是用於控制檯應用程序。但是你也可以在上面的例子中使用'Environment.GetCommandLineArgs()'(我更喜歡它)在Windows窗體程序中。無論哪種方式他們返回相同的信息。我感謝你澄清,第一個路徑將是可執行文件,然後下面的文件將被刪除。我只是不確定這是否是如此。謝謝你讓我放心! :) – Seth

+0

您應該從'main'傳遞命令行參數以實現更好的封裝。否則,除了作爲應用程序的主要形式之外,您將無法使用此表單。 –

+0

@RaymondChen我不知道我完全理解。你是什​​麼意思,我不會在主窗體以外的任何地方使用這種形式?這是主要形式..... – Seth

相關問題