C#通过命令行传递文件

本文关键字:文件 命令行 | 更新日期: 2023-09-27 18:21:25

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

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

程序的结果如下:

3
abc
def
xyz

所以,问题的根源是,我需要将文件名作为命令行参数传递,但我不知道如何做到这一点

提前感谢您的帮助!

C#通过命令行传递文件

您可能遇到的唯一问题是带有空格的文件名。如果你的文件名为abc def xyz,那么你应该用双引号包装它:

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

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

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
     }
   }
}
class Program
{
    static void Main(string[] args)
    {
    if (args.Length == 0){
        Console.WriteLine("Please pass command line arguments.");
        return;
    }
    string fileName = args[0];
    }
}

有一种方法可以做到。

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

2) 最重要的是:打开visual studio命令提示符并按如下方式编译代码:(i) 设置保存程序的当前路径。(ii)使用csc文件名.cs 进行编译

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

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