c# - 从放置控制台应用程序快捷方式的位置读取文件
问题描述
我正在创建一个控制台应用程序,它从 exe 所在的文件夹中读取所有文件。我基本上想将 exe 放在一个包含文件的文件夹中,运行它,然后让它读取该文件夹中的所有文件。
不幸的是,我使用了一些 nuget 包,所以我有大约 10 多个其他 .dll 文件,以及 appsettings.json 文件等。我必须将所有这些 .dll 与我的 .exe 文件一起复制到包含我想阅读以运行它的文件。
- 有没有办法将exe文件复制到包含文件的文件夹并运行它?(我试过这个,但我的控制台马上就关闭了)
- 由于上述方法不起作用,我想我可以创建 .exe 的快捷方式,然后将其放在包含文件的文件夹中。但这似乎是在包含原始 .exe 的文件夹中寻找文件
下面是我的代码
var folderPath = Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location);
var filePath = Directory.GetFiles(folderPath, "*.csv", SearchOption.AllDirectories);
foreach (var filePath in filePaths)
{
Console.WriteLine($"Reading file {filePath}");
using (var reader = new StreamReader(filePath))
using (var csvReader = new CsvReader(reader, CultureInfo.InvariantCulture))
{
records = csvReader.GetRecords<Player>().ToList();
}
}
解决方案
使用 cmd 文件而不是快捷方式:
pushd %~dp0
Full-Path-to-exe\Program.exe