C# 从控制台应用程序快捷方式所在的位置读取文件
我正在创建一个控制台应用程序,它读取exe所在文件夹中的所有文件。我基本上想把exe放在一个有文件的文件夹中,运行它,让它读取该文件夹中的所有文件 不幸的是,我使用的是一些nuget软件包,所以我有大约10多个其他.dll文件,以及appsettings.json文件等。 我必须将所有这些.dll以及.exe文件复制到包含要读取的文件的文件夹中才能运行它C# 从控制台应用程序快捷方式所在的位置读取文件,c#,.net,.net-core,asp.net-core-3.1,C#,.net,.net Core,Asp.net Core 3.1,我正在创建一个控制台应用程序,它读取exe所在文件夹中的所有文件。我基本上想把exe放在一个有文件的文件夹中,运行它,让它读取该文件夹中的所有文件 不幸的是,我使用的是一些nuget软件包,所以我有大约10多个其他.dll文件,以及appsettings.json文件等。 我必须将所有这些.dll以及.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();
}
}
var folderPath=Path.GetDirectoryName(Assembly.GetEntryAssembly()?.Location);
var filePath=Directory.GetFiles(folderPath,“*.csv”,SearchOption.AllDirectories);
foreach(filePath中的var filePath)
{
WriteLine($“正在读取文件{filePath}”);
使用(var reader=newstreamreader(filePath))
使用(var csvReader=new csvReader(reader,CultureInfo.InvariantCulture))
{
records=csvReader.GetRecords().ToList();
}
}
你可以考虑两个解决办法:< /P>
- 在可执行工作区中复制或移动这些文件
- 使用绝对路径,而不是基于可执行文件位置的相对路径
你可以考虑两个解决办法:< /P>
- 在可执行工作区中复制或移动这些文件
- 使用绝对路径,而不是基于可执行文件位置的相对路径
pushd %~dp0
Full-Path-to-exe\Program.exe
使用cmd文件而不是快捷方式:
pushd %~dp0
Full-Path-to-exe\Program.exe
好的,谢谢。我想这可能不可能,但我只是想检查一下。我要绝对的path@VRoxa可执行文件可以将其依赖项嵌入为资源;这将解决OPOk的问题,谢谢。我想这可能不可能,但我只是想检查一下。我要绝对的path@VRoxa可执行文件可以将其依赖项嵌入为资源;这将解决OP的问题