我有一个可以在任何地方运行的环境路径中的控制台应用程序。如果用户键入
Program filename
从文件退出的目录
File.Exists(args[0])
告诉我文件存在。 但是当传递args [0]时它只是文件名,所以我假设C#预先添加:
Environment.CurrentDirectory
因为应用程序可以从任何地方运行,并且命令行可以从绝对路径的相对路径获得大量可能的输入,我想知道什么是获取文件所在的正确目录的最安全的方法。
以下似乎工作得很好,但如果我错过了某些东西,那就更好了,这是更好的方法。
string dir = Path.GetDirectoryName(args[0]);
if (String.IsNullOrEmpty(dir))
dir = Environment.CurrentDirectory;
非常感谢提前。
答案 0 :(得分:3)
使用Path.GetFullPath(args[0])
- 这会将文件名解析为您的全名。