我想创建一个转换文件的程序。我希望用户能够将可执行文件放在任何目录,当执行该程序(双击.exe),我希望程序处理当前文件夹内的所有文件,其中exe文件存在。程序如何确定当前正在执行的路径?
我尝试了System.Windows.Forms.Application.StartupPath,但这似乎是错误的方式。
什么好主意吗?
我想创建一个转换文件的程序。我希望用户能够将可执行文件放在任何目录,当执行该程序(双击.exe),我希望程序处理当前文件夹内的所有文件,其中exe文件存在。程序如何确定当前正在执行的路径?
我尝试了System.Windows.Forms.Application.StartupPath,但这似乎是错误的方式。
什么好主意吗?
当前回答
在这种情况下,不应该使用directory . getcurrentdirectory(),因为当前目录可能与执行文件夹不同,特别是当您通过快捷方式执行程序时。
最好使用Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);为了你的目的。这将返回当前执行程序集所在的路径名。
虽然我建议的方法允许您区分执行程序集,入口程序集或任何其他加载程序集,正如Soner Gönül在他的回答中所说,
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
也许也足够了。这就等于
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
其他回答
对于。net CORE使用System.AppContext.BaseDirectory
(替换AppDomain.CurrentDomain.BaseDirectory)
使用应用程序。StartupPath在我看来是最好的结果。
这段代码以字符串类型创建了应用程序目录的路径
string path="";
path=System.AppContext.BaseDirectory;
祝你好运
在这种情况下,不应该使用directory . getcurrentdirectory(),因为当前目录可能与执行文件夹不同,特别是当您通过快捷方式执行程序时。
最好使用Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location);为了你的目的。这将返回当前执行程序集所在的路径名。
虽然我建议的方法允许您区分执行程序集,入口程序集或任何其他加载程序集,正如Soner Gönül在他的回答中所说,
System.IO.Path.GetDirectoryName(Application.ExecutablePath);
也许也足够了。这就等于
System.IO.Path.GetDirectoryName(Assembly.GetEntryAssembly().Location);
1.
Directory.GetCurrentDirectory();
2.
Thread.GetDomain().BaseDirectory
3.
Environment.CurrentDirectory