【问题标题】:C# Pass a file via command lineC# 通过命令行传递文件
【发布时间】:2014-11-05 02:55:52
【问题描述】:

我的程序应该读取文件并计算其中元音和辅音的数量。因此,文件名必须作为命令行参数传递。这是我的代码的一部分:

class FileDetails 
{
    static void Main(string[] args) 
    {

        Console.WriteLine(args.Length); 
        foreach (string arg in args)
        { 
            Console.WriteLine(arg); 
        }
    }
}

编译这个文件后,我通过命令行运行它并将一些参数传递给 Main 函数:

C:\Users\StepN\Desktop\FILEDETAILS>filedetails abc def xyz

programm的结果是这样的:

3
abc
def
xyz

所以,问题的根源是我需要将文件名作为命令行参数传递,但我不知道该怎么做。

提前感谢您的帮助!

【问题讨论】:

  • 所以,您的所有参数都已成功通过。有什么问题?
  • 尝试使用 System.IO.File.ReadAllLines(args[0])
  • 您的代码没有问题。根据您的编码方式,它是 WORKING 的。现在,您要做的就是以这种方式调用程序“filedetails.exe myfile.txt”。您可以在代码中获取文件名(args[0])并打开文件并读取内容并执行您的工作。这是你的编程任务吗? :-)(开个玩笑)

标签: c# command-line-arguments


【解决方案1】:
class Program
{
    static void Main(string[] args)
    {
    if (args.Length == 0){
        Console.WriteLine("Please pass command line arguments.");
        return;
    }

    string fileName = args[0];

    }
}

【讨论】:

    【解决方案2】:

    如果您在一个命令行参数中使用空格,请用双引号将其括起来。这就是你应该为你的可执行文件提供参数的方式:

    C:\Users\StepN\Desktop\FILEDETAILS>filedetails.exe "C:\file name.txt"
    

    在代码中访问文件名:

    class FileDetails 
    {
      static void Main(string[] args) 
      {
         if(args.Length > 0 )
         {
             string filePath = args[0];            
    
             //read the file using System.IO namespace
         }
    
       }
    }
    

    【讨论】:

      【解决方案3】:

      您可能遇到的唯一问题是带有空格的文件名。如果您的文件名称为abc def xyz,那么您应该将其用双引号括起来:

      C:\Users\StepN\Desktop\FILEDETAILS>filedetails "abc def xyz"
      

      【讨论】:

        【解决方案4】:

        有办法。

        1) 打开记事本并编写代码并保存。

        2) 最重要的:打开 Visual Studio 命令提示符并编译代码如下: (i) 设置保存程序的当前路径。 (ii) 用 csc FileName.cs 编译

        3) 现在使用以下命令行参数执行程序: (a) 文件名 arg1 arg2

        如果您不习惯这样做,请创建一个批处理文件并传递写入您的参数。然后运行您的 .bat 文件,该文件将触发您的 C# 程序。我的意思是这可能会触发您 bin 文件夹中的 .exe。

        【讨论】:

          猜你喜欢
          • 2016-07-21
          • 1970-01-01
          • 2017-08-26
          • 2017-09-25
          • 1970-01-01
          • 2019-12-07
          • 2014-10-17
          • 2012-11-02
          • 1970-01-01
          相关资源
          最近更新 更多