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
所以,问题的根源是,我需要将文件名作为命令行参数传递,但我不知道如何做到这一点
提前感谢您的帮助!
您可能遇到的唯一问题是带有空格的文件名。如果你的文件名为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。