如何在c#中找到文件夹的路径?

时间:2014-07-31 06:52:47

标签: c# path xamarin directory

我的main函数从命令行获取参数。 这个论点看起来像

--args ../../TempImages ../Resources.csproj etc.

如何从这个参数中找到c#中此文件夹的完整路径? 像

Users/%username%/Projects/Resource/Resource.csproj

我尝试过使用Path,Directory,Enviroment类,但没有什么可以帮助我 我正在使用Xamarin,MacOSX 10.9

修改: 忘了说,我不知道上面提供的完整路径。我的脚本在不同的系统上运行。因此,这些文件的完整路径可以不同。 Moriarty的回答对我有帮助,但是在这种情况下,它不起作用。

1 个答案:

答案 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