Не могу запустить приложение (C #) через cmd - PullRequest
0 голосов
/ 31 марта 2010

Я не могу выполнить свое приложение через 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;
    }
}

Что не так с кодом? спасибо

Ответы [ 2 ]

1 голос
/ 31 марта 2010

Вы передаете полный путь к файлу как: "C: \ Мои документы \ MyFile.txt"?

Вы можете передать имя файла как MyFile.txt, только если файл находится в том же каталоге, где вы выполняете cmd / запускаете ваше приложение.

0 голосов
/ 31 марта 2010

Что происходит / что получается при добавлении этих нескольких строк:

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

Что вы получаете ???

...