获取文件夹的当前路径

我想创建一个转换文件的程序。 我希望用户将可执行文件放在任何目录中,并且在执行此程序时 /双击 .exe/ 我希望这个程序处理

包含文件存在的当前文件夹中的所有文件。 exe

. 程序如何确定当前运行的路径?

我试过了
System.Windows.Forms.Application.StartupPath

, 但它似乎是错误的方式。

有什么想法吗?
已邀请:

君笑尘

赞同来自:



不是

必须使用
Directory.GetCurrentDirectory//

在您的情况下,由于当前目录可能与执行文件夹不同,因此特别是如果您通过快捷方式执行程序。

最好使用
Path.GetDirectoryName/Assembly.GetExecutingAssembly//.Location/;

为了它的目的。 这返回当前正在运行的路径 assembly.

虽然我建议的方法允许您区分执行情况 assembly, 记录 assembly 或任何其他下载的 assembly, 据说

Sonner Genul.

在他的答案中,


System.IO.Path.GetDirectoryName/Application.ExecutablePath/;


它也可能就足够了。 这将是等同的


System.IO.Path.GetDirectoryName/Assembly.GetEntryAssembly//.Location/;

裸奔

赞同来自:

System.AppDomain.CurrentDomain.BaseDirectory


这将为您提供应用程序的运行目录。 它甚至适用于Web应用程序。 之后你可以到达你的文件。

奔跑吧少年

赞同来自:

我创建了一个简单的控制台应用程序,其中包含以下代码:


Console.WriteLine/System.IO.Path.GetDirectoryName/Assembly.GetExecutingAssembly//.Location//;
Console.WriteLine/System.AppDomain.CurrentDomain.BaseDirectory/;
Console.WriteLine/System.Environment.CurrentDirectory/;
Console.WriteLine/System.IO.Directory.GetCurrentDirectory///;
Console.WriteLine/Environment.CurrentDirectory/;


我复制了收到的可执行文件
C:\temp2

. 然后我将此可执行文件中的快捷方式放在此可执行文件中
C:\temp3

并推出它 /曾经是从 exe 从标签中有一次/. 他两次都给出了以下结果:


C:\temp2
C:\temp2\
C:\temp2
C:\temp2
C:\temp2


虽然我相信应该有

什么

- 愚蠢的理由解释为什么

五种不同的方法

, 这几乎同样的事情,我绝对不知道它是什么。 然而,似乎在大多数情况下,您可以自由选择您喜欢的内容。

UPDATE:

我通过更改字段更改了标签属性 "Start In:" 在
C:\temp3

. 这导致以下结果:


C:\temp2
C:\temp2\
C:\temp3
C:\temp3
C:\temp3


...

什么至少演示了

一些

不同方法之间的差异。

窦买办

赞同来自:

string appPath = System.IO.Path.GetDirectoryName/Application.ExecutablePath/;


经过
http://msdn.microsoft.com/en-u ... .aspx
返回指定路径行的目录信息。

经过
http://msdn.microsoft.com/en-u ... .aspx
返回运行应用程序的可执行文件的路径,
包括可执行文件的名称。

涵秋

赞同来自:

用它


var currentDirectory = System.IO.Directory.GetCurrentDirectory//;


你可以使用它。


var currentDirectory = Path.GetDirectoryName/System.Reflection.Assembly.GetExecutingAssembly//.Location/;

龙天

赞同来自:

为了

.NET CORE

使用
System.AppContext.BaseDirectory


/作为替代品
AppDomain.CurrentDomain.BaseDirectory

/

裸奔

赞同来自:

1.


Directory.GetCurrentDirectory//;


2.


Thread.GetDomain//.BaseDirectory


3.


Environment.CurrentDirectory

郭文康

赞同来自:

使用
https://msdn.microsoft.com/en- ... .aspx
达到最佳结果 imo.

裸奔

赞同来自:

如果你需要一种方法 exe, 您可以使用system.io.getDirectoryName/System.Reflection.Assembly.GetEntryAssembly//。地点/;

二哥

赞同来自:

它适合我,特别是在使用时 dotnet core single file publish.
Path.GetDirectoryName/System.Diagnostics.Process.GetCurrentProcess//.MainModule.FileName/

.

八刀丁二

赞同来自:

此代码块以字符串形式创建应用程序目录的路径。


string path="";
path=System.AppContext.BaseDirectory;


祝你好运

要回复问题请先登录注册