C# 控制台应用程序,获取 args 文件正确路径的最安全方法

标签 c#

我有一个位于环境路径中的控制台应用程序,可以从任何地方运行。如果用户输入

Program filename

从文件所在的目录

File.Exists(args[0])

会告诉我文件存在。 但是当传递 args[0] 时它只是文件名,所以我假设 C# 前置:

Environment.CurrentDirectory

因为应用程序可以从任何地方运行,并且命令行可以有大量可能的输入,从相对路径到绝对路径,我想知道获取文件所在的正确目录的最安全方法是什么。

下面的方法似乎工作得很好,但我想知道我是否遗漏了什么,这是更好的方法吗。

string dir = Path.GetDirectoryName(args[0]);
if (String.IsNullOrEmpty(dir))
dir = Environment.CurrentDirectory;

非常感谢。

最佳答案

使用 Path.GetFullPath(args[0]) - 这将为您将文件名解析为全名。

关于C# 控制台应用程序,获取 args 文件正确路径的最安全方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43712773/

相关文章:

c# - Azure 中的 ClientBuildManager.PrecompileApplication 不使用预编译版本

c# - 如何让我的 ServiceStack 测试使用 RestSharp 进行身份验证?

C# AES-256 加密

c# - 查找未调用的代码

C# 目录复制不返回错误,但不复制目录

c# - 无法从 gridview 内的 templateField 中的文本框获取值

c# - 如何使用带参数的函数作为事件处理程序?

c# - 在 ASP.NET C# 中将 byte[] 流式传输到图像

c# - 丑陋的 LINQ 语句,更好的方法?

c# - 重建后是否需要重新安装Windows服务