【问题标题】:Not able to pass text file(.txt) as command line argument to console application无法将文本文件(.txt)作为命令行参数传递给控制台应用程序
【发布时间】:2023-04-04 03:25:01
【问题描述】:

我想将命令行参数中的 Text(.txt) 文件作为参数传递给我的控制台应用程序。

这是我的控制台应用程序的结构:

现在我想从我的项目中的命令行参数传递 SampleFile.txt 文件,正如您在我的 txt 文件的图像和打印输出中看到的那样。

如何做到这一点?

谁能告诉我一步一步的过程来做到这一点,因为我对控制台应用程序非常陌生。

【问题讨论】:

  • 但是你没有使用args来获取文件路径。
  • 是否将 SampleFile.txt 复制到您的输出目录?在属性中确保 Copy to Output Directory 设置为 Copy AlwaysCopy if newer
  • 你被否决的原因是因为这个问题非常基本 - 你可以在谷歌上找到答案 5 分钟。该网站针对重要的问题提供了经过深思熟虑的好问题。
  • 如果您将鼠标悬停在问题上的向下投票箭头上,您会看到一个小的“拒绝投票的原因”框。这个问题属于不显示任何研究工作部分。我在 bing 上的第二个结果是 msdn.microsoft.com/en-us/library/cb20e19t.aspx,它准确地解释了如何做你所要求的。
  • @EricJohansson:下次我会记住这件事的。谢谢你指导我

标签: c# file console-application command-line-arguments


【解决方案1】:

如果你想处理“SampleFile.txt”,在调试你的应用程序时,那么:

  • 在解决方案资源管理器中右键单击项目,选择“属性”;
  • 切换到左侧的“Debug”页面;
  • 在“启动选项/命令行参数”下键入“SampleFile.txt”(如果需要,请提供完整路径);
  • 保存项目;
  • 使用args[0] 访问您传递的文件名。

【讨论】:

  • 但在服务器上部署此项目后,当您指定本地路径(如 d 驱动器)时,如何访问此文件
  • 这只是构建命令行参数的一种方式。有两种不同的情况。第一个,当您调试应用程序时 - 在这种情况下,您将使用 Visual Studio 在启动调试会话时传递的文件名。第二个,当您的应用程序在部署后使用时 - 在这种情况下,它将使用文件名,由用户传递。换句话说,“d:\foo\bar\SampleFile.txt”不会被您的应用程序“记住”。
  • 不会有问题,启动选项命令行参数只是一个默认值,当您使用 F5 调试时传递给您的程序。当你从命令提示符运行程序时,你总是需要提供你自己的参数。
【解决方案2】:

当您右键单击项目并转到Properties 时,应该会出现一个名为Debug 的选项卡,其中包含用于设置命令行参数的选项。在那里你可以放文件名。

SampleFile.txt

然后在启动应用程序时在args 数组中找到文件名。

string fileName = args[0];

【讨论】:

  • 在 commandlineargument 选项中是否需要指定完整路径,例如 f 驱动器的 e 的 d
  • 不,您不需要指定完整路径 - 默认情况下它将相对于 .exe。
【解决方案3】:

始终将文件复制到输出目录。

将文件路径添加到命令行参数

然后,您将在 main 方法中获得“SampleFile.txt”作为参数。

private static void Main(string[] args)
{
    string yourFile = args[0];
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-06-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    • 2012-05-08
    • 1970-01-01
    相关资源
    最近更新 更多