我的程序应该读取文件并计算其中的元音和辅音数量。因此,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
因此,问题的根源是我需要将命令行参数作为文件名传递,但我不知道,该怎么做。
提前感谢您的帮助!
答案 0 :(得分:0)
class Program
{
static void Main(string[] args)
{
if (args.Length == 0){
Console.WriteLine("Please pass command line arguments.");
return;
}
string fileName = args[0];
}
}
答案 1 :(得分:0)
如果在一个命令行参数中使用空格,则用双引号将其括起来。这就是你应该为你的可执行文件提供参数的方法:
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
}
}
}
答案 2 :(得分:0)
唯一的问题是带有空格的文件名。如果您的文件名为abc def xyz
,那么您应该用双引号括起来传递它:
C:\Users\StepN\Desktop\FILEDETAILS>filedetails "abc def xyz"
答案 3 :(得分:0)
有一种方法可以做。
1)打开记事本并编写代码并保存。
2)最重要的是:打开visual studio命令提示符并编译代码如下: (i)设置保存程序的当前路径。 (ii)使用csc FileName.cs编译它
3)现在使用以下命令行参数执行程序: (a)FileName arg1 arg2
如果你不喜欢这样做,那么创建一个批处理文件并传递你的参数。然后运行你的.bat文件,它将触发你的C#程序。我的意思是这可能会触发bin文件夹中的.exe。