开发者

Cant run application (C#) through cmd

开发者 https://www.devze.com 2022-12-25 12:35 出处:网络
I can\'t execute my application through cmd, when the application is trying to read the argument which was sent to it (text file), it fails...

I can't execute my application through cmd, when the application is trying to read the argument which was sent to it (text file), it fails...

When I'm trying to execute it through the IDE (vs2008), it works ok...

That's what I did in the main method:

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

What's wrong with the code ? thanks


Are you passing the full path to the file as: "C:\My Documents\MyFile.txt" ?

You can only pass the file name as MyFile.txt if the file is in the same directory where you are executing the cmd/running your app.


What happens / what gets output when you add these few lines:

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

What do you get???

0

精彩评论

暂无评论...
验证码 换一张
取 消