[英]Relative path to a file using C#
我有一个命令行程序,它将配置文件作为参数,即C:\\ myprogram.exe -c C:\\ configFiles \\ MyConfigFile.txt 。 我希望能够这样做,这样我就不必输入配置文件的绝对路径,所以我可以输入C:\\ myprogram.exe -c MyConfigFile.txt而不是上面的命令。
我不太熟悉C#如何处理路径以了解是否或如何做到这一点。 任何见解都表示赞赏。
就像是:
string path = "MyConfigFile.txt";
string fullPath = System.IO.Path.GetFullPath(path);
如果配置文件在当前目录中。 如果它们存储在标准文件夹中,您可以使用Path.Combine()
string basePath = "C:\Configs";
string file = "MyConfigFile.txt";
string fullPath = System.IO.Path.Combine(basePath, file);
你只传递一个字符串。 你应该以相对路径的方式来处理它。
如果您使用此代码,它将默认支持相对路径。
如果提供的路径不明确, FileInfo
将首先尝试使用Environment.CurrentDirectory
的路径。
var file = new FileInfo(args[1]); // args[1] can be a filename of a local file
Console.WriteLine(file.FullName); // Would show the full path to the file
你有一些一般选择:
无论如何切片,用户必须指明目录的路径,无论是在配置文件中,输入相对路径,还是从不同目录中具有相同名称的文件列表中进行选择。
类比:你把一本教科书放在学校里的某个储物柜里。 你要求你的朋友从“储物柜”中取出这本书,而不是暗示可能是哪个储物柜。 你应该等待很长时间,并最终得到50本类似的书。 或者,提供关于可以存储书籍的走廊,储物柜组和/或储物柜号码的线索。 线索的模糊性与响应时间和返回多种可能性的可能性直接相关。
好吧,标准.NET类使用相对路径和绝对路径一样,因此,您可以毫无问题地使用它们。 如果C:root是程序的工作目录,则可以使用c:\\myprogram.exe -c configFiles\\MyConfigFile.txt
,它将指向c:\\configFiles\\MyConfigFile.txt
。
如果没有相对路径作为输入参数的一部分,您的应用程序将需要:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.