我的main函数从命令行获取参数。 这个论点看起来像
--args ../../TempImages ../Resources.csproj etc.
如何从这个参数中找到c#中此文件夹的完整路径? 像
Users/%username%/Projects/Resource/Resource.csproj
我尝试过使用Path,Directory,Enviroment类,但没有什么可以帮助我 我正在使用Xamarin,MacOSX 10.9
修改: 忘了说,我不知道上面提供的完整路径。我的脚本在不同的系统上运行。因此,这些文件的完整路径可以不同。 Moriarty的回答对我有帮助,但是在这种情况下,它不起作用。
答案 0 :(得分:0)
幸运的是,Mono在System.IO领域已经很好地采用了这一点。您正在使用Environment类的正确方向,如下所示:
var path = Path.Combine (
Environment.GetFolderPath(Environment.SpecialFolder.UserProfile),
"Projects",
"Resource",
"Resource.csproj");
Environment.GetFolderPath与Environment.SpecialFolder.UserProfile结合使用,可以获取Windows中已知的%USERPROFILE%。
其次,请注意我已将/ Projects / Resource / part拆分为Path.Combine函数的单独参数。这是为了防止Windows<> Mac<> Linux文件操作出现问题,让我们为您解决这个问题。
所以这将适用于所有平台。享受!
<强>更新强>
对于认为这是错误答案的downvoters:引用的重复文章中提到的建议不会在Mac或Linux上运行。这是因为“/ paths / with / slahes”在非Windows环境中对Mono / Xamarin平台的行为有所不同。这就是最初的问题所在。 #imho