如何在 C# 的启动选项中提供命令行参数的相对路径

How can I provide relative path to command line arguments in start option in C#

我有一个目录文件夹,我们每天在其中获取 100 个文件。

我的程序从 IN 文件夹中选取文件,并在处理后将它们放入 Out 文件夹中。

我在

中给出确切位置时遇到问题

Project > Properties > DEBUG > START OPTION > COMMAND LINE ARGUMENTS

(即 "C:\Data\IN\File.txt") 然后程序成功执行并找到文件,但是当我提供像 "C:\Data\IN" 这样的位置时,它没有选择任何文件并抛出异常

Could not find file 'C:\Data\In'. InnerException is Null.

IN 文件夹每天有 100 个不同的文件。我该如何解决这个问题?

您需要使用 Directory.GetFiles() 静态 class 来获取要处理的文件列表。 Microsoft 文档有一个有用的示例。

https://msdn.microsoft.com/en-us/library/07wt70x2(v=vs.110).aspx

"C:\Data\IN" 不是相对路径,它是包含文件的目录的绝对路径。您可以从绝对目录路径中获取这样的文件:

string[] files = Directory.GetFiles(@"C:\Data\IN", "*.txt");

如果你只知道目录相对于EXE的路径,你可以得到这样的绝对路径:

string dir = Path.Combine(Application.StartupPath, @"Data\IN");