2010-03-31 92 views
0

我無法通過CMD執行我的應用程序,當應用程序試圖讀取它發送給它(文本文件),它失敗的說法...廣東話運行的應用程序(C#)通過CMD

當我試圖通過IDE(VS2008)來執行它,它的工作原理確定...

這就是我在main方法做:

static void Main(string[] args) 
{ 
    int choice = 0; 

    if (args.Length == 0) 
     choice = 1; 
    else 
     choice = 2; 

    switch(choice) 
    { 
     case 1: 
      string[] text = Directory.GetFiles("allText"); 
      Console.WriteLine(DateTime.Now.ToString()); 

      foreach (string fileName in text) 
      { 
      string substring = fileName.Substring(8); 

      ReadData_Logic rd_l = new ReadData_Logic(substring); 
      rd_l.runThreadsAndDecrypt(); 
      rd_l.printKey(substring.Substring(0, fileName.Length - 15).Insert(0, "encryptedKey\\") + "_result.txt"); 
      } 

      Console.WriteLine(DateTime.Now.ToString()); 
      break; 

     case 2: 
      Console.WriteLine(DateTime.Now.ToString()); 
      string fileName = args[0]; 
      Console.WriteLine(fileName); **<--- for debug, here i do see the correct file name** 
      ReadData_Logic rd_l = new ReadData_Logic(fileName); 
      rd_l.runThreadsAndDecrypt(); 
      rd_l.printKey(fileName + "_result.txt"); 

      Console.WriteLine(DateTime.Now.ToString()); 
      break; 
    } 
} 

有什麼不好的代碼? 謝謝

+3

請告訴我們它是如何失敗的。你得到什麼樣的錯誤/異常? – 2010-03-31 18:43:04

+0

你如何從cmd.exe啓動你的應用程序?向我們展示一個例子!怎麼了? – 2010-03-31 18:58:39

回答

1

你是否傳遞文件的完整路徑爲:「C:\ My Documents \ MyFile.txt」?

如果該文件位於執行cmd /運行應用程序的相同目錄中,則只能將文件名稱傳遞爲MyFile.txt。

+2

,注意那些帶有空格的路徑,比如'C:\ My Documents ......'! – 2010-03-31 18:57:29

+0

是的,marc_s是正確的......注意帶有空格的路徑......把「」作爲路徑傳遞到文件中,如「C:\ My Documents \ MyFile.txt」。 – 2010-03-31 19:00:14

0

會發生什麼/是什麼鬼輸出,當你添加的這幾行:

static void Main(string[] args) 
{ 
    Console.WriteLine("Count of arguments: {0}", args.Length); 

    int choice = 0; 

    if (args.Length == 0) 
     choice = 1; 
    else 
     choice = 2; 

    Console.WriteLine("Choice now is: {0}", choice); 

你明白了什麼???

+0

修復了這個問題, 非常感謝 – Igal 2010-05-06 21:42:25